我有一台配备 Yocto Linux 和标准配置的 Intel Edison。它预先安装了 nohup,并且我设法安装了 screen 和 tmux(通过从源代码编译它们)。现在,我想运行一些进程并在断开连接时保持其正常运行。我尝试了以下方法:
- 使用屏幕运行程序、分离、注销、登录、运行
screen -r
- 使用 tmux 运行程序、分离、注销、登录、运行
tmux attach
- 运行该程序
nohup python myscript.py &
使用 screen 和 tmux 时,如果不断开连接,我可以成功恢复会话。但是,当我断开 screen 和 tmux 的连接时,提示没有要恢复的会话/屏幕。使用 nohup 运行时,注销并重新登录会导致我的进程被终止(运行 top 时不会显示)。
可能发生什么事?我真的不明白这一点。
答案1
mhahn 说 Yocto sshd 中有一个错误,在离开 ssh 时会杀死所有当前的 cgroup 进程,这个错误有一个简单的修复方法(只是还没有进入 Edison 版本):poky - Poky 构建工具和元数据,简而言之:
echo "KillMode=process" >> /lib/systemd/system/[email protected]
https://communities.intel.com/thread/57402?start=15&tstart=0