nohup命令提交任务有其它方案可以替代吗?

一次提交任务,保证该任务从此开始一直在后台永久运行,即使关闭了提交任务的shell窗口,任务依旧在后台运行,有什么其它的方案吗?不使用nohup

阅读 3.8k
2 个回答

最好的方式是改写成系统服务用services或systemctl来控制.

Systemd能够处理各种不同的服务类型,特别是以下之一

  • simple-长时间运行的进程,不会自身后台运行,并且始终与外壳连接。
  • forking-一个典型的守护程序,将其自身分叉,将其从运行它的进程中分离出来,从而有效地使其自身成为后台。
  • oneshot-预计将退出的短暂进程。
  • dbus-很简单,但是启动完成的通知是通过dbus发送的。
  • notify-很简单,但是启动完成的通知是通过inotify发送的。
  • idle-就像简单一样,但是二进制文件是在工作分配后启动的。

Type=forkingsystemd正在等待该进程派生自己并等待父进程结束,这表明该进程已成功启动。

使用Type=simple,是默认设置。在这种模式下,systemd不会等待进程完成启动(因为它无法知道何时发生),因此可以立即继续执行和相关服务。

安全注意事项:

服务通常以非特权用户身份运行,则攻击者只能造成与该用户相同的损害,并且现在必须尝试获得root特权才能完全拥有您的系统。它只是增加了攻击者必须经过的额外一层。

tmux 这种呢.

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏