2018年9月22日土曜日

nohup コマンド

nohup コマンド

nohup コマンドは、ハングアップシグナル(SIGHUP, HUP)を無視するかたちでコマンドを実行させるコマンドです。
例えば、ターミナルが突然切断された等の理由(TeraTermを×で閉じるとか、切断するとか)でクローズされる場合、その端末から起動されたプロセスグループにはHUPシグナルが送信されます。このHUPシグナルを受けて、それまで実行していたプログラムは終了しますが、nohup コマンドを使ってプログラムを実行した場合は、このHUPシグナルを無視するので、結果、そのプログラムは処理を続けます。
memo
bash、tcsh、ksh をデフォルト設定のまま使っていれば、'&'をつけてコマンドを実行するだけでログアウトしても処理は継続されます。zshの場合はログアウト時もHUPシグナルが送信されますので、処理は終了します。
bashを使っていても、以下のように、
# shopt -s huponexit  ← huponexitをONに変更。OFFにするには、「-u」オプションを使う
の設定をあらかじめしてあるとログアウト時にHUPシグナルが送信されます。
zshを使っていたり、huponexit が on になっていたりする場合で、ログアウト後も処理を継続したい場合は、nohupを使います。

0 件のコメント:

コメントを投稿

php log(ECS ログ出力)

# PHPエラーログの設定 ENV PHP_INI_DIR /usr/local/etc/php RUN { \ echo 'log_errors = On' ; \ echo 'error_log = /proc/self/...