- 硬件是树莓派3B英国版
- 系统是kali rolling版本
之前一直用
screen
或者nohup
以便在ssh会话结束后继续后台执行命令,但不知怎么了,现在用screen命令新开启一个session执行命令,然后按Ctrl+A+D
detaches窗口后,在ssh中按Ctrl+D
或者exit
退出窗口后,screen的session列表也被清空了。
- 使用nohup命令也是同样情况。
- 看过进程树,使用nohup后的进程是
init
的子进程了,但还是被杀死了 - 附下使用nohup的姿势:
nohup scrapyd &
请问为什么会出现这样无法后台执行的情况
是 systemd 吗?如果是的话,写成 systemd 服务吧。或者 enable-linger 然后 systemd-run --user --scope 也行。
systemd 现在默认在会话结束时杀掉会话中的每一个进程,所以你需要在会话外运行你的服务。(配置在 /etc/systemd/logind.conf。)