2018年7月15日日曜日

ubuntuでログアウトしてもプロセスを継続する

ログアウトしてもプロセス継続

$ nohup <command>
とすれば、バックグラウンドで動作して、ログアウトしてもプロセスが生き残ります。(シャットダウンすると消えます。)


(あとで)確認して停止する

あとで確認するには
$ps x
でよく見ればpid(プロセスID)が分かりますから、
kill pid
としてプロセスを殺します。

テキスト出力 

$ nohup <command> > file.txt &
・ > file.txt とするとfile.txtに出力されます。設定ない場合はnohup.out
・ 末尾に&オペレータを入れると、PIDが出力されます。


foo.pyを用意して実行します
#!/usr/bin/python
# -*- coding: utf-8 -*-
import time
for i in range(5):
    print (i)
    time.sleep(3)
これで
 $ nohup python foo.py
nohup: ignoring input and appending output to 'nohup.out' 
入力を無視して出力をnohup.outに追加します。とコンソール上に出力されます。

--

std.outにprint出力していたので、バックグラウンド動作させつつもログアウトしない間はコンソールに同時に出力したいな〜と思ったのですが、無理みたいです。
https://serverfault.com/questions/414341/redirect-nohup-to-stdout

loggingで出力する方がよいですね。ちなみにloggingのコンソール出力はnohup.outに出力されます。

0 件のコメント:

コメントを投稿