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

时间:2013-12-24 20:10:53

标签: terminal gnu-screen nohup

背景:我有一个长时间运行的脚本,它使数据库架构更改具有我想在迁移后检查的输出。我想将其写入文件。

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

IN:How to run process as background and never die?

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

使用screen我很害怕输入exit而不是ctrl + a,d

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

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

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

1 个答案:

答案 0 :(得分:18)

两者都有自己的+和 - :

<强> nohup的:

  1. 当proc没有在后台运行proc时,nohup很好用 需要任何用户输入,如httpd服务器或任何其他服务器proc喜欢 那。
  2. nohup会在proc执行的dir中创建日志。日志文件名 默认是nohup.out
  3. 它避免了由于错误导致的死亡 ctrl + C,ctrl + D.只是一个安全的守卫。
  4. 默认情况下通常会安装基本设置。无需像屏幕一样单独安装。
  5. 它的功能非常特定于在后台运行作业 和转储输出。内存密集度低。
  6. <强>屏幕:

    1. 必须单独安装。您无法前往数据中心或登录到 任何框和期望屏幕都存在。
    2. 很好地管理不同主题的多个终端并给它们命名。
    3. 它更像是终端管理器而不是像nohup那样无限时间运行proc的命令。
    4. 如果proc需要用户输入,则更合适。喜欢安装
      脚本,是/否提示。
    5. 有了特征的音调,就会有记忆。但同意,有些是非常好的功能。
    6. 总而言之,两者都是用不同的议程制作的两个不同的东西,所以比较是困难的。

      干杯!