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