nohup vs screen - 对于长时间运行的过程更好?

Chr*_*nch 17 terminal gnu-screen nohup

背景:我有一个长时间运行的脚本,它使数据库模式更改具有我希望在迁移后检查的输出.我想把它写到一个文件.

我一直在读关于nohup和屏幕的堆栈溢出.我已经尝试了两者并对两者都有顾虑.

IN:如何将进程作为后台运行而永不死?

他们说他们用过nohup和腻子杀了这个过程.这怎么可能?我无法使用Mac OS X终端进行复制.

随着screen我害怕键入exit,而不是CTRL + A,d的

此外,如果我在使用屏幕时退出终端应用程序,它似乎保持状态.

屏幕似乎是更好的解决方案,因为它真的很漂亮,你可以打开一堆它们并切换回状态.

在我的情况下你会推荐什么?我没有运行脚本一个月左右(当我有一个发布时).我是否应该更熟悉屏幕并坚持使用它?

mrt*_*ale 19

两者都有自己的+和 - :

nohup的:

  1. 当proc不需要像httpd服务器或任何其他服务器proc这样的用户输入时,nohup很适合在后台运行proc.
  2. nohup确实创建了proc执行的目录.日志文件名默认为nohup.out
  3. 它避免了由于错误的ctrl + C,ctrl + D而导致proc死亡.只是一个安全的守卫.
  4. 它通常默认安装基本设置.无需像屏幕一样单独安装.
  5. 它的功能非常特定于在后台运行作业和转储输出.内存密集度低.

屏幕:

  1. 必须单独安装.您无法前往数据中心或登录
    任何方框,并且预计会出现屏幕.
  2. 很好地管理不同主题的多个终端并给他们起名字.
  3. 它更像是终端管理器而不是像nohup那样无限时间运行proc的命令.
  4. 如果proc需要用户输入,它更合适.像安装
    脚本一样,是/否提示.
  5. 随着功能的色调,它的记忆.但同意,有些是非常好的功能.

总而言之,两者都是两个不同的议程,因此比较困难.

干杯!

  • 我认为您输入错误,您打算写“您不能去数据中心..”而不是“您可以去...”。,不是吗?已经3年前了,但是迟到总比没有好,呵呵 (2认同)