プログラムを常にバックグラウンドで実行するには nohup を使用します
Unix/Linux では、特定のプログラムをバックグラウンドで実行したい場合、プログラムの最後に & を使用してプログラムを自動的に実行することがよくあります。たとえば、mysql をバックグラウンドで実行したいとします。
/usr/local/mysql/bin/mysqld_safe --user=mysql &
しかし、私たちのプログラムの多くは mysqld のようなデーモンにはなっていないのかもしれません。プログラム。通常、この種のプログラムは & で終わりますが、端末が閉じられるとプログラムも閉じられます。ただし、バックグラウンドで実行できるようにするには、 nohup コマンドを使用します。たとえば、バックグラウンドで実行する必要がある test.php があり、それをバックグラウンドで定期的に実行したい場合は、次のコマンドを使用します。 nohup:
nohup /root/test.php &
Tips:
[~]$ appending Output to nohup.out
まあ、これは操作が成功したことを証明すると同時に、プログラム操作は、現在のディレクトリの nohup.out ファイルに配置されます。
添付ファイル: nohup コマンド リファレンス
nohup コマンド
目的: 電話を切らずにコマンドを実行します。
構文: nohup Command [ Arg ... ] [ & ]
説明: nohup コマンドは、すべてのハングアップ (SIGHUP) 信号を無視して、Command パラメーターおよび関連する Arg パラメーターで指定されたコマンドを実行します。ログアウト後にバックグラウンドでプログラムを実行するには、nohup コマンドを使用します。 nohup コマンドをバックグラウンドで実行するには、コマンドの末尾に & (「and」の記号) を追加します。
nohup コマンドの出力がターミナルにリダイレクトされるかどうかに関係なく、出力は現在のディレクトリの nohup.out ファイルに追加されます。現在のディレクトリの nohup.out ファイルが書き込み可能でない場合、出力は $HOME/nohup.out ファイルにリダイレクトされます。ファイルを作成できない場合、または追加用に開くことができない場合、Command パラメーターで指定されたコマンドは呼び出されません。標準エラーが端末の場合、標準エラーに書き込まれた指定されたコマンドのすべての出力は、標準出力と同じファイル記述子にリダイレクトされます。
終了ステータス: コマンドは次の終了値を返します:
126 Command パラメーターで指定されたコマンドは見つかりましたが、呼び出すことができません。
127 nohupコマンドでエラーが発生したか、Commandパラメータで指定したコマンドが見つかりません。
それ以外の場合、nohup コマンドの終了ステータスは、Command パラメーターで指定されたコマンドの終了ステータスになります。
nohup コマンドとその出力ファイル
nohup コマンド: プロセスを実行していて、アカウントからログアウトしてもプロセスが終了しないと思われる場合は、nohup コマンドを使用できます。このコマンドは、アカウントからログアウトするかターミナルを閉じた後も、対応するプロセスを実行し続けることができます。 nohup は電話を切らない (n ohang up) という意味です。
このコマンドの一般的な形式は次のとおりです: nohup コマンド &
nohup コマンドを使用してジョブを送信します
nohup コマンドを使用してジョブを送信すると、デフォルトでジョブのすべての出力がファイルにリダイレクトされます出力ファイルが別途指定されていない限り、nohup.out ファイルと呼ばれます:
nohup コマンド > myout.file 2>&1 &
上記の例では、出力は myout.file ファイルにリダイレクトされます。
ジョブを使用してタスクを表示します。
fg %n を使用して閉じます。
バックグラウンドでの FTP アップロードとダウンロードを実現できる、一般的に使用される 2 つの FTP ツール ncftpget と ncftpput もあるので、これらのコマンドを使用してバックグラウンドでファイルをアップロードおよびダウンロードできます。