プログラムやSHELLコマンドをバックグラウンド実行する

この記事には広告を含む場合があります。

記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。

バックグラウンドで実行する方法

PHPやRuby、PythonなどのプログラムやSHELLコマンドをバックグラウンドで実行したいときがあります。並列で処理したいや実行時間が長い処理に有効なため、知っていると重宝するときがあるので確認してみましょう。

 

実装方法

バックグランド実行したいときはnohupコマンドと「&(アンパサンド)」を利用します。

nohup 実行したいコマンド &

nohupコマンドは、ログアウト時などに送信されるHUPシグナルを受け取らずにコマンドを実行します。「&(アンパサンド)」はコマンドをバックグラウンドで実行します。
つまりnohupコマンドと「&(アンパサンド)」を同時に設定することにより、ログアウトなどによって中断されずに、処理をバックグランドで実行することができます。

 

サンプルコード

コマンド実行の場合

PHPによる実行の場合

 

留意事項

コマンドやスクリプトで実行を行うと、結果はデフォルトで「./nohup.out」ファイルに出力されます。もちろん以下のようにファイルを指定すれば、任意のファイルに出力することができます。

「output.txt」に出力する場合

ファイルを出力しない場合

 

 

Linuxの知識については下記の本も参考になるので、スキルアップにお役立てください。

created by Rinker
三宅 英明 (著)、大角 祐介 (著)
ページ数: 440ページ
出版社:SBクリエイティブ
発売日:2015/06/06

出典:amazon