Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

telnetにて

javaでtelnetを使用して、Linuxサーバーにアクセスするプログラムを作成しました。
そのプログラムでバッシュのコマンドをバックグラウンドで起動し、回線を切断するロジックがあるのですが、回線切断時にコマンドが停止してしまうという現象が発生しました。
回線を切断後もコマンドを動作中にすることは不可能なのでしょうか。
何か問題があるのでしょうか。
何かご意見を頂ければと思います。

8

回答

79693

閲覧

8件の回答

評価

0

どんな実装をしているのかわからないけど。
普通にTelnetで接続して
目的のことができるコマンドを実行すれば
同じことができるわよ。
Javaの問題じゃないので
Linuxのシェルのマニュアルでも眺めて頂戴。

評価

0

てんこさん
ご意見ありがとうございます。

Linuxのシェルの問題なのかもしれませんが、手動(コマンドプロンプト)で実行した際には、telnetを切断してもバックグランドで動いてましたが、javaからの起動の場合に発生するのです。
しかも気に入らないことにシェルコマンドではうまく動作しているようなのだが、バッシュコマンドでは停止してしまうのです。
シェルコマンドもバッシュコマンドも他人が作成したものです。
バッシュコマンドだとjavaを通してのバックグラウンド処理はできないなどないと思うのですが…

評価

0

テンポラリ領域にshの内容を吐いて実行したことがあったな。

評価

0

$さん
ご意見ありがとうございます。

> テンポラリ領域にshの内容を吐いて実行したことがあったな。

これによって何がわかるのでしょうか?

評価

0

単に目的のコマンドを実行するプロセスを委譲するだけ。
でshを&つきで起動したと思った。

評価

0

&をつけてバックグラウンドでは起動しているので問題ないと思っていたんですが、Telnetの回線を切断したら一緒にバックグランドで動いてたはずのコマンドが止まっちゃったんですよ。
あまり考えられない現象に面喰ってる状況です。

評価

0

試していないけど、nohupコマンドを使うとどうなります
か?

評価

0

kjさん
ご意見ありがとうございます。

nohupですか、知りませんでした。
すぐにテストできない環境なので、成否を報告できませんが、実施してみようと思います。
ネットで見た説明文を見る限りでは、なんか解決できそうな気がします。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。