在后台运行Linux命令并在关闭SSH后继续运行

dal*_*sam 5 linux ssh centos server

我需要运行 Perl 脚本几天来处理某些事情。在 Linux Centos 服务器上,我从 SSH 终端运行以下命令:

nohup perl script.cgi 2>&1 &
Run Code Online (Sandbox Code Playgroud)

这会在后台运行脚本并将输出写入 nohup.out。当我关闭 SSH 终端或什至我的互联网连接断开时,脚本就会终止。

关闭 SSH 终端后,我需要保持此命令在服务器后台运行。

GIR*_*yal 5

您可以使用终端多路复用器工具,例如 screen、byobu 或 tmux。我个人使用屏幕。因此,通过sudo apt-get install screen将其安装在远程服务器上。

  1. ssh 进入服务器
  2. 通过screen -S sessionname打开屏幕会话
  3. 现在运行你的命令(后台/前台都有效)
  4. 现在通过命令ctrl+a分离到您的会话,然后按d
  5. 现在关闭你的电脑并享受
  6. 现在返回 ssh 到服务器,然后使用命令screen -x sessionname重新连接分离的会话。

欢呼!脚本仍在运行。


Ran*_*esh 3

您可以使用 screen 或在 Linux 系统中使用 Supervisor 运行命令。

  • 你可以使用安装屏幕sudo apt install screen
  • 然后使用以下命令来运行它。
  • screen -S test_command
  • nohup perl script.cgi 2>&1 &
  • 然后按 ctrl+a 和 ctrl+d 使该会话保持运行所需的时间,直到服务器重新启动。
  • 如果要停止命令 use screen -x test_command,请按 ctrl+c 并使用 ctrl+a 和 ctrl+d 关闭屏幕,或按 ctrl+a 和 ctrl+d 保持屏幕会话不变。