1. ホーム

ubuntu nohupコマンド

2022-02-09 09:56:50
<パス

執筆日 24.10.2017
社内のサーバーでコードを実行するにはいつも数日かかるので、nohupコマンドを知っていることがサーバーでコードを実行するための最初の保証になり、このコマンドしか知らないのです。このコマンドの機能は&の機能に似ています。ただ、&のバックグラウンドで動いているチュートリアルは、ウィンドウの親プロセスを閉じるとともに終了しますが、サーバー上の実際の状況は、私のローカルマシンを閉じても、プロセスはkillされず、この時nohupコマンドが必要になります。次のブログ記事は、nohupコマンドを使用する際に遭遇するいくつかの問題を記録するものです。

コマンドの基本的な書式は

nohup command &
#default output is redirected to the nohup.out file

出力リダイレクトに関する質問

nohup command >file.out 1&>2 &# Redirects both standard and error output to file.out

Pythonコードの実行中ログファイルが更新されない

pythonの出力はバッファリングされているので、-u引数でコマンドを実行します。

nohup python -u main.py &

pytorchにGPUとnohupを指定すると、エラー "そのようなディレクトリまたはファイルがありません" が発生します。

CUDA_VISIBLE_DEVICES=0 nohup python -u main.py>log.txt 2>&1 &
#Note that CUDA_VISIBLE_DEVICES precedes nohup

nohupのプロセスを終了させる方法

#filter the pid of the process to be killed
ps -aux|grep "process name"
kill -9 pid