FreeBSD初心者運用日記 このページをアンテナに追加

 | 

2009-03-21

[][][]実行中のプロセスデーモンにする方法 19:34 実行中のプロセスをデーモンにする方法 - FreeBSD初心者運用日記 を含むブックマーク はてなブックマーク - 実行中のプロセスをデーモンにする方法 - FreeBSD初心者運用日記 実行中のプロセスをデーモンにする方法 - FreeBSD初心者運用日記 のブックマークコメント

Teraterm上で、バックグラウンドプロセスを起動した後、PCを落としても終了しないという誤解が多いようです。

ターミナルからログアウトすると、そのターミナルから生成したプロセスfgやbg問わずSIGHUPシグナルが送られるので、ほとんどのプログラムはそこで終了してしまいます。

では、終了させないためにはどうすればよいかというと、

コマンドの頭にnohupをつけて実行します。

そのプロセスにたいしてはターミナルログアウト時にSIGHUPが送られないそうです。

ここまでは、プロセスを実行する前の話です。

では、プロセスを実行してしまった後はどうすればよいか?

ctrl+zでプロセスサスペンド後、disownコマンドを使って、disown %{ジョブ番号}を実行すればよいらしいです。

ToDo:Linuxの場合は、これでよいがFreeBSDの場合はどうするんだろう。。?

TransFreeBSDTransFreeBSD2009/03/22 16:52disownはbash/zsh系の内部コマンドのようです。なので、FreeBSDでもbashとかであれば使えるようです。
で、tcshとかcsh系にはない訳ですが、この場合、もともとHUPを送らないようです。つまりdisownが必要ないと。
http://d.hatena.ne.jp/lurker/20070220
ほかが参考になりました。

py4s-tnkpy4s-tnk2009/03/22 17:31なるほど。。勉強になりました。ありがとうございます,

 |