|  |      1Livid MOD PRO | 
|  |      2thekoc      2017-02-16 19:41:06 +08:00 你要的是这种东西么? http://supervisord.org | 
|  |      3skydiver      2017-02-16 19:41:58 +08:00 via Android 输出重定向到文件后台运行然后 disown tmux 或者 screen 里运行 | 
|  |      4skydiver      2017-02-16 19:43:00 +08:00 via Android 另外还可以写成 service 文件(sysvinit 或者 systemd)然后运行 | 
|  |      5ProjectAmber      2017-02-16 19:49:17 +08:00 systemd 。 | 
|  |      6xialdj      2017-02-16 19:51:49 +08:00 via iPhone systemd +1   写成配置文件 app.service 放到 systemd 文件夹 然后 systemctl start/stop/restart /enable/disable app 就可以操作了 | 
|  |      7fingerstyle OP 不是 supervisor ,主要是想让进程完全脱离终端,忽略 HUP 信号 现在在尝试 setsid 如果不行的话试试 systemd 感谢大家的指点 | 
|  |      8kiwi95      2017-02-16 20:02:31 +08:00 via Android 楼主的需求 tmux 应该可以吧,也许楼主应该再说明白一点 | 
|      9jimzhong      2017-02-16 20:12:31 +08:00 用 tmux 吧。 daemon 可以自己在程序中实现, fork 后关掉 stdin ,重定向 stdout/err ,并 setuid 。 | 
|      10hosiet      2017-02-16 20:27:44 +08:00 via Android 既然是可以自己修改的 shell 脚本,可以用最经典的两次 fork 守护进程化的标准做法。如果是其它情况的话,加一层 wrapper 当然也可以。 | 
|      11hosiet      2017-02-16 20:32:02 +08:00 via Android 看你的发行版,还可能有个神奇玩意叫做 start-stop-daemon | 
|  |      13fxxkgw      2017-02-17 10:29:26 +08:00 setsid 应该可以。。 | 
|  |      14Osk      2017-02-19 01:21:10 +08:00 ```shell #!/bin/bash trap " " SIGHUP function check_() { if [ "$RUN_BACKGROUND" != 1 ] then export RUN_BACKGROUND=1 $0 $@ & exit 0 fi } check_ do_yout_evil ``` 启动它的 shell 挂了它也能继续后台正常运行 | 
|  |      15Langley      2017-02-19 16:44:27 +08:00 via iPhone 我直接用 screen |