nohup 与 Screen

nohup 与 Screen

过去,我曾经nohup运行大型后台作业,但我注意到很多人使用screen在此背景下。是否screen提供了某种我不知道的功能优势,或者这只是一个偏好问题?

答案1

两者都有各自的优点和缺点:

诺哈普:

  1. 当进程不需要任何用户输入时,nohup 非常适合在后台运行进程,例如 Web 服务器或任何其他类似的服务器进程。
  2. nohup 确实在进程执行的目录中创建日志。日志文件名为nohup.out.
  3. Ctrl它避免了由于错误的+C或类似的组合键而导致进程被终止 。只是一个保障。
  4. 它通常通过基本设置默认安装。无需像屏幕一样单独安装。
  5. 它的功能非常特定于在后台运行作业和转储输出。低内存密集型。

屏幕:

  1. 需要单独安装。您无法前往数据中心或登录任何盒子并期望屏幕出现。
  2. 可以很好地管理不同主题的多个终端并给它们命名。
  3. 它更多的是终端管理器,而不是像 nohup 那样无限时间运行进程的命令。
  4. 如果流程需要用户输入,则更适合。与安装脚本一样,有是/否提示。
  5. 拥有大量的功能,随之而来的是它的内存。但同意,有些功能确实很棒。

@rahmu,如果想杀死它,我永远不会猜测 pid。在杀死某人/某物之前一定要确定;)。

screen 和 nohup 两种情况下的最佳方法是: ps -eaf | grep "nohup" | grep "your proc name/keyword"

使用屏幕并检查其上正在运行的内容。

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

答案2

屏幕有很多功能。它不仅仅是“守护进程”,它更像是终端的窗口管理器。

如果进程在某个时刻需要输入,则可以使用它,您可以去检查进程的输出,重新连接到其终端,...

所以不,这不仅仅是一个偏好问题,它们根本不是一回事。

答案3

screen让你:

  1. 回到实际运行的屏幕,发送信号,看看跑得有多快,看看是否有错误信息等等。
  2. 用有意义的标题命名进程。如果你想杀死一个进程,你不必猜测它的进程 ID。

答案4

  1. nohup还可以通过数据库字段调试来检查进程进度。
  2. ps ax | grep nohup会显示进程的 id,你可以杀死它。
  3. nohup是比较快的。原因很简单,这取决于您的 PC 和服务器之间的互联网连接。每当互联网变慢时,该过程也会变慢。

相关内容