目前大多數Linux發行版已經使用systemd
啓動代替之前的init
啓動,在systemd
下,默認會話結束時,會殺死的會話中的全部進程。html
所以當遠程ssh時exit
後screen
和tmux
的會話窗口也被關閉了。python
在systemd啓動下,由loginctl
控制着用戶登陸的一些配置選項。例如用戶 log out 時默認殺死用戶全部進程。ubuntu
方法一:修改loginctl
默認配置segmentfault
#/etc/systemd/logind.conf
KillUserProcesses=no
複製代碼
而後重啓服務便可bash
sudo systemctl restart systemd-logind
複製代碼
方法二:運行命令在當前用戶session外,使用systemd-run
命令:session
systemd-run --user --scope tmux
複製代碼
systemd-run
用於後臺執行命令,將進程從當前用戶歸屬於systemd
用戶ssh
方法三:將命令寫成一個服務,經過服務啓動scrapy
例如將scrapyd命令做爲服務單元啓動spa
#/usr/lib/systemd/system/scrapyd.service
[Unit]
Description=run the Scrapyd server
[Service]
ExecStart=/home/pi/.virtualenvs/python3/bin/scrapyd
Type=simple
KillMode=process
[Install]
WantedBy=multi-user.target
複製代碼
然後執行命令便可:rest
sudo systemctl daemon-reload
sudo systemctl start scrapyd
複製代碼
我的博客 -> 原文地址