• 締切済み

Telnetをログアウトしても処理を続けたい

PC1(AIX UNIX)からPC2(Win2000 sp2)へtelnetでログインし、PC2上のバッチファイルを実行させようとしています。 一連の作業を自動化させたいため、PC1上のシェルスクリプトでバッチファイルを起動させているのですが、ログアウトするとバッチファイルのプロセスも切れてしまいます。 シェルスクリプトはsleepコマンドのため、自動的にexitがかかってしまい、長い処理や処理時間の読めないプログラムを走らせることができません。UNIX系のnohupのようなことをWindows上で行うことはできないのでしょうか? 色々と調べても情報がなかったので、あきらめかけてます。ご存じの方、またご経験のある方がいましたら教えて下さい。

みんなの回答

  • anmochi
  • ベストアンサー率65% (1332/2045)
回答No.1

ntoskrnlにシグナルがあるかどうかは知らんし、Windows 2000のtelnetサーバに関しては何度か試した事があるだけであまり詳しくないのだが。 telnetで開始されたcmd.exeから「start」コマンドでバッチファイルを起動させるとどうだろう。 c:\>start cmd.exe /C hogehoge.bat これで、「別窓で」新しいcmd.exeプロセスが開始され(telnet経由だと何も起こっていないように見えるだろう)、そいつがバッチの面倒を見て終了する。この間にstartを実行した方のcmd.exeは終了する事ができる。

lunarian510
質問者

お礼

回答ありがとうございます。startコマンドも試したことがあるのですが、telnetを切ると別窓も同時に落ちてしまいます。

関連するQ&A

  • windowsからtelnetでログインし自動処理

    windowsからUNIXサーバーへtelnetでログインし その後、様々な処理を行い、ログアウトするまでの一連の操作をバッチファイル化したいのですが、上手くログインできません。 WINODWSで telnet.batというバッチファイルをダブルクリックするとその中の telnet open 192.168.1.1 user passwd cd usr cp a.tar b tar exit といった処理を実行させたいのですが、 TELNETを呼び出したまでは良かったのですが、 上手くログインできず止っています。 宜しくお願いします。

  • telnetの自動シェルバッチを作成したい

    UNIXは不得意のため、とても困っています。 是非、アドバイスをお願いします。m(_S_;)m えっと。windowsでいえば、ブラウザにURLを設定するようなことを UNIX上で、telnetを使って自動バッチを作成したいと思っています。 HTTP要求のURL: http:xx.xx.xx.xx:7001/TEST/test.srv?MODE=0 自分で書いてみたシェル ------------------------------------------------- sleep 2; echo ${USER_ID} sleep 1 echo ${PASSWORD} sleep 1 echo "GET /TEST/test.srv?MODE=0" sleep 1 echo "exit" | telnet ${SERVER_IP} ${WEB_POOT} ------------------------------------------------- 下記では、「ファイルもディレクトリもありません。」の エラーが出てしますます。。 でもブラウザより上記のURLを入れて実行するぶんには 正常にhtmlを返してくれます。(バッチではhtmlを返さなくても可) お手数をおかけしますが、どなたかもしアドバイス等が 御座いましたら、どうか宜しくお願い致します。

  • logoutしたとき消えるプロセスは誰が消してるの?

    telnetなどでログインして プロセスを動作させて、ログアウトすると 動作させていたプロセスが消えるのですが、 誰がそのプロセスにシグナルを送っているのでしょうか? OSはsolarisを使っています。 シェルが子供を消しているのかと思ったのですが、 以下の動作をみるとそうでないみたいで・・ telnet .... $ $sh $sleep 10000 & 1234(←sleepのPID) $kill [shのPID] $ ps -eo pid,ppid,args | grep 1234 1234 1 sleep 1000 $exit telnet .... $ $ ps -eo pid,ppid,args | grep 1234 $ない

  • telnetバッチによる処理の自動化

    Windows2000からLinuxへのtelnetによる処理を自動化したいのですが バッチファイルで解決するのは無理でしょうか? やりたいことは以下の部分です。 1、ログイン 2、ルートユーザ変更 3、コマンド実行 4、exit この処理のあとFTPバッチにて コマンド結果を取得したいと思っています。 (こちらは何とかなりました・・・) ネットワーク的に完全ローカルなのでセキュリティとかは気にしてません。 ただ、Tera Termとかをインストールできないため Windows標準コマンドを使うしかないのです。。。 どうにかなるでしょうか? よろしくお願いいたします。

  • シェルスクリプトで困っています 2

    度々申し訳ございません。 現在、Linuxマシン1からLinuxマシン2へTelnetでログインし、Linuxマシン2上にあるシェルスクリプト(/bin/sh)を実行し、Linuxマシン2上のプログラムを実行した後、Linuxマシン2からログアウトするシェルスクリプトを作成中です。 その、Linuxマシン2からログアウトする際に、 "exit"を記述しているのですが、その"exit"がTelnetログアウトの意味で実行されず、シェルスクリプトを終了するの意味で実行されていて困っています。 どなたか上手くTelnetからログアウトできるようにシェルスクリプトを組む方法をご存知ではないでしょうか?もし判りましたらご教授下さい。 よろしくお願い致します。

  • マイクロソフトのバッチ処理について

    マイクロソフトのバッチ処理は、MSDOSのころから連綿として続いている機能で、unixのシェルを適用させたものと思います。 記述されているコマンドを上から順番に進めていくということになると思っていますが、ループ化することはできるのでしょうか。 100個のファイルがあって1つ1つナンバリングされていますが、それを一挙に処理するために同じ処理を100行にわたって書くことを行っています。ただし、ファイル名が違うのでそこは変えていますが。 同じことを100回書くのが苦痛なのでperlのようなもので書き出す工夫はしています。バッチがループで回ってループカウンタとファイル名をうまく合わせると2,3行で済むのではないかと思うのですが。こういうことはできないものなのでしょうか。unix, Linuxにいったん渡してそこでシェルスクリプトで処理することは今回はできません。Windows上限定のことなのですが。よろしくお願いします。

  • telnetをスクリプトで実行する

    WindowsXPからルーターにtelnetでログインし、 ポリシーを変更する。といった操作を、バッチファイルを使用し、 自動化できないかと考えています。 telnetの自動ログイン、ルーターのコマンドの送信と いった処理はどのように書けばいいのでしょうか? バッチファイルと、ルーターの設定が書かれたtxtファイルで できればと思っています。 FTPの「-s:」のようなオプション等はないのでしょうか?

  • telnetの仕組みについて

    telnetの仕組みがいまいち分かりません。 自分のPC:リモートする方 相手のPC:リモートされる方 として 仮想端末に接続して自分のPCでコマンドを打つと思うのですが(telnetはコマンドプロンプトから起動します。また専用のソフトを使ってもCUIですよね) この打っているのは相手側のPCがwindowsなら相手側のコマンドプロンプトに打っているのと同様なのでしょうか。またUNIXとかならシェルに打っているのと同様なのでしょうか。

  • kshについて

    現在AIXなどのUNIX系のシステムの運用(AIXがほとんどです。)をやっているものです。 AIXのコマンドを勉強しようと思い、その一環でというか、シェルを作ったり、作られたシェルを 解析することでコマンドの勉強になると思い、シェルについて勉強しようと思っています。 そこで、シェルについての本を探しているのですがどのような本が良いでしょうか? 皆さんが実際に読んでみてよいと思った本を教えてください。 ちなみにkshです。 探してみたのは、 入門UNIXシェルプログラミング―シェルの基礎から学ぶUNIXの世界 ブルース ブリン (著) UNIXシェルスクリプトハンドブック 関根 達夫 (著) です。 よろしくお願いします。

  • バックグランド実行+ログアウトでジョブが残るのは?

    以下のようなシェルをバックグランド実行した後、ログアウトしてもジョブ(プロセス)が残っているのはなぜなのでしょうか? バックグランド実行しても、ログアウトするとバックグランドプロセスはkillされてしまう。だからnohupを使いましょう、、とネットではよく書かれています。自分でこれを検証試みた結果、想定の 動きとならなかったので質問させてもらいました。 以下シェルを 「 ./test01.sh & 」と実行させるのですが、別コンソールでプロセスを監視している限り、最後まで動作し続けるのです。 どなたかおわかりになる方教えてください。 ◇検証用シェル #!/bin/sh echo "start" > ./test01.log for ((i=0 ; i<3 ; i++)); do sleep 60 echo $i >> ./test01.log date >> ./test01.log done