バックグラウンドで実行する方法
PHPやRuby、PythonなどのプログラムやSHELLコマンドをバックグラウンドで実行したいときがあります。並列で処理したいや実行時間が長い処理に有効なため、知っていると重宝するときがあるので確認してみましょう。
Advertisement
実装方法
バックグランド実行したいときはnohupコマンドと「&(アンパサンド)」を利用します。
nohup 実行したいコマンド &
nohupコマンドは、ログアウト時などに送信されるHUPシグナルを受け取らずにコマンドを実行します。「&(アンパサンド)」はコマンドをバックグラウンドで実行します。
つまりnohupコマンドと「&(アンパサンド)」を同時に設定することにより、ログアウトなどによって中断されずに、処理をバックグランドで実行することができます。
サンプルコード
コマンド実行の場合
1 2 3 |
root@localhost:# nohup hogehoge.sh root@localhost:# nohup hogehoge.php & > /dev/null |
PHPによる実行の場合
1 2 3 |
<? shell_exec('nohup hogehoge.php & > /dev/null'); |
留意事項
コマンドやスクリプトで実行を行うと、結果はデフォルトで「./nohup.out」ファイルに出力されます。もちろん以下のようにファイルを指定すれば、任意のファイルに出力することができます。
「output.txt」に出力する場合
1 |
nohup hogehoge.sh & > /output.txt |
ファイルを出力しない場合
1 |
nohup hogehoge.sh & > /dev/null |
Linuxの知識については下記の本も参考になるので、スキルアップにお役立てください。

Author:しき 投稿一覧
奈良県在住のエンジニア。アルバイトでゲーム開発に携わりIT業界入り。組み込みや業務系のソフト開発を経験して、その後レンタルサーバー会社にてインターネットの根幹の知識を得る。今ではスマホアプリの開発やWeb開発、インフラの構築に従事中。
関連する記事
web開発カテゴリの最新記事
-
- 2021.12.11
気象庁JSON ファイルにある weatherCode 一覧
-
- 2021.12.06
- php,
[PHP]Deprecated (非推奨)エラーを解除する方法
-
iPhone / iPad にて電話番号に自動で紐づくリンクを無効化する方法
-
- 2021.12.11
- javascript, プログラミング,
Javascript/jQuery にて指定の日時でページを更新する
-
- 2021.12.11
- ツール,
Poderosa にて入力(出力)が二重で表示される問題の対処法
-
- 2021.12.11
- javascript, nodejs,
Node.js にて対話モードを開始&終了する方法