2018年1月11日木曜日

[Linux] バックグラウンドでLinuxコマンドを実行する


【試した環境】
Google Cloud Platform(GCP)[VMインスタンス]上で実行
OS : Linux(Debian 9.2)

今回はバックグラウンドでLinuxコマンドを実行する方法です。

バックグラウンドでLinuxコマンドを実行

コマンドの最後に[&]をつけるとバックグランドで実行することができる。
$ [実行コマンド] &

例えば
$ sleep 30 &
[2] 26005
$
プロセスIDが表示され、即座に次のコマンドが実行できるようになる。
注意するのは、ターミナルの切断が切れたりしてログアウトした場合に、この方法ではプロセスは終了してしまう。

ログアウトしてもバックグラウンドで実行

ログアウトしてもプロセスをバックグラウンドで実行を続けたい場合は、[nohup]コマンドを先頭につけて実行すると、永続的なバックグランドのコマンドを実行できる。
(SIGHUPを無視した状態でプロセスを起動することができる)
一般的にはこれでバックグラウンド実行する。
$ nohup [実行コマンド] &
例えば
$ nohup php background.php &
[2] 26005
$

標準出力の指定

標準出力の指定がないと実行ディレクトリに[./nohup.out]というファイルが出力されてしまう。
できればログ出力を指定をしておいた方が良い
$ nohup php background.php > log.txt  &


【参考】

0 件のコメント:

コメントを投稿