terminal - nohup 与 screen——哪个对于长时间运行的进程更好?

标签 terminal gnu-screen nohup

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

我一直在阅读有关 nohup 和 screen 的堆栈溢出。我已经尝试过这两种方法并且对这两种方法都有顾虑。

输入:How to run process as background and never die?

他们说他们使用了 nohup 并且 putty 终止了该进程。这怎么可能?我无法使用 Mac OS X 终端进行复制。

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

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

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

针对我的情况,您会建议什么?我还有一个月左右的时间没有运行脚本(当我发布版本时)。我是否应该对 screen 感到更舒服并坚持下去?

最佳答案

两者都有自己的+和-:

nohup:

  1. nohup 非常适合在 proc 不运行时在后台运行 procs 需要任何用户输入,例如 httpd 服务器或任何其他服务器进程,例如 那。
  2. nohup 确实在 proc 执行的目录中创建日志。日志文件名 默认为 nohup.out
  3. 避免了 proc 由于错误而被杀死 Ctrl+C 、Ctrl+D 。只是一个安全 guard 。
  4. 通常通过基本设置默认安装。无需像screen那样单独安装。
  5. 它的功能非常特定于在后台运行作业 和倾销输出。低内存密集度。

screen :

  1. 必须单独安装。您无法前往数据中心或登录
    存在任何框和预期 screen 。
  2. 适合管理不同主题的多个终端并为其命名。
  3. 它更多的是终端管理器,而不是像 nohup 那样无限时间运行 proc 的命令。
  4. 如果 proc 需要用户输入,则更适合。喜欢安装
    脚本,是/否提示。
  5. 随着特征的色调,它的内存也随之而来。但同意,有些功能确实很棒。

总而言之,两者是两个不同的事物,具有不同的议程,因此很难进行比较。

干杯!

关于terminal - nohup 与 screen——哪个对于长时间运行的进程更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20766300/

相关文章:

python - 想在 python 中调整终端窗口的大小,工作但不太正确

java - INTELLIJ 终端仅显示目录而不运行命令提示符

linux - 在 screen 中创建窗口

linux - Grep in screen 不将输出保存到日志文件

linux - nohup 命令在 Chef 资源中不起作用

python - Ubuntu nohup 关闭具体脚本

iphone - 如何构建类似 iPad App 的终端

c - 升级到Mojave后,无法在Mac上编译C程序

linux - bash cron 羊群 screen

linux - 获取 Linux 中 nohup 提交的作业的 PID