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