LINUXデーモン

1728 ワード

デーモンプロセス(deamon)は、バックグラウンドで実行されているプロセス(daemon)です.
フロントタスク(foreground job)
バックグラウンドタスク(background job)
fg                
bg            ,      (     )
ctrl+z                 ,        ,    

linuxバックグラウンドタスクの開始
起動するプログラムの後ろに&を付けると、起動するプログラムが「バックグラウンドタスク」になります.
python elk.py &

バックグラウンドタスクの特徴
1.現在のセッションの標準出力(stdout)と標準エラー(stderr)を継承するため、バックグラウンドタスクのすべての出力は同期してコマンドの下に表示されます.
2.現在のセッションの標準入力を継承していません(stdin).このタスクに命令を入力できません.ビューが標準入力を読み出すと、実行が一時停止します(halt)
SIGHUP信号
通常フロントプログラム終了
1.      session
2.    session  SIGHUP  
3.session SIGHUP         
4.     SIGHUP   ,    

shellのhuponexitパラメータを表示できます
shopt |grep huponexit
デフォルトはoffオフなのでセッション終了時にSIGHUP信号をバックグラウンドタスクに送信しないので、一般的にバックグラウンドタスクはセッションとともに終了しません.
disownコマンド
システムのhuponexitパラメータが開いているonであればdisownというコマンドを使用して、バックグラウンドタスクリスト(jobsコマンドの戻り結果)からバックグラウンドタスクを1つ削除することができます.このリストにない限り、sessionはSIGHUP信号を送信しません.
実行後elk.pyプロセスはバックグラウンドタスクリストから削除され、jobs出力結果にはこのプロセスはありません.
python elk.py &
disown
disown  
disown //               
disown -r//             
disown -a  //        
disown -h //     ,          SIGHUP  
//  jobId,         
disown %2
disown -h %2

標準I/O
disownコマンドを使用してセッションを終了バックグラウンドプロセスがテーブル準I/Oとインタラクティブである場合は停止します
nohup  
nohup python elk.py &
nohup  
1.  SIGHUP         
2.      ,             ,       
3.               nohup.out
           session   

参考学習:
http://www.ruanyifeng.com/blog/2016/02/linux-daemon.html