2015年9月30日 星期三

How to make a programme continue to run after log out from ssh

引用自: http://stackoverflow.com/questions/954302/how-to-make-a-programme-continue-to-run-after-log-out-from-ssh

需求:
當執行 domjudge 的評分程式 (./judgedaemon) 時,希望從遠端利用 ssh 連線下達執行指令,並且令 judgedaemon 程式停留在背景執行,以便下達執行後,即可登出 ssh 連線。於是,電腦關機後,並不會中斷 judgedaemon 的執行。

方法:
    1. 先利用 ssh 登入系統,然後下達 ./judgedaemon 指令。
    2. 按下 Ctrl-Z
    3. 看到 "[1]+  Stopped                 ./judgedaemon" 出現後,
      下達 "disown -h %1" 指令。
    4. 再來,再下達  "bg 1" 指令即可看見 judgedaemon 程式進入背景執行。
    5. 於是就可以結束 ssh 連線了。
操作畫面如下:
$ ./judgedaemon
[Sep 30 19:36:26] judgedaemon[2210]: Judge started on CR208-3 [DOMjudge/4.0.5]
[Sep 30 19:36:26] judgedaemon[2210]: No submissions in queue, waiting...
^Z
[1]+  Stopped                 ./judgedaemon
$ disown -h %1
$ bg 1
[1]+ ./judgedaemon &
$ exit