Linux服务器的SSH客户端断开后,保持程序继续运行的方法

目录

1. nohup 命令:

2. tmux 或 screen:

3 final shell 断开后服务器如何继续执行令?

方法一:使用 nohup 命令

方法二:将命令放在后台执行

4 你可以使用 jobs 命令查看当前终端中正在后台运行的任务

(1) 查看后台作业:

(2)将作业移动到前台:

(3) 将作业放到后台:

(4)终止后台作业

5 如果你使用了 nohup 或者在终端关闭后重新连接到服务器,如何管理后台任务?

(1)ps 命令:

(2)pgrep 命令:

(3)pkill 命令:

(4)tmux 或 screen:


如果你使用SSH连接到Linux服务器,并且希望在断开SSH连接后继续运行程序,例如深度学习训练模型需要长时间周期进行,在这期间如果退出服务器客户端或者网页连接,服务器Linux系统会自动关闭所有进程,程序也会随之终止运行(被挂起),你可以使用以下几种方法保证在客户端ssh断开连接后,服务器执行的命令不中断:

1. nohup 命令:

使用nohup命令可以在后台运行程序,而且在SSH连接断开后仍然保持运行。示例:

nohup your_command &

   
   

这会将your_command命令在后台运行,并将输出写入nohup.out文件。你可以使用jobs命令来查看后台任务,或者使用ps aux | grep your_command来查看特定命令的运行情况。

2. tmux 或 screen:

使用tmuxscreen是一种更强大的方法,它允许你创建和管理终端会话,而不受SSH连接断开的影响。你可以在tmuxscreen会话中运行你的程序,然后在需要的时候重新连接到会话。示例:


   
   
  1. tmux
  2. # 在 tmux 会话中运行你的程序
  3. your_command
  4. # 按下 Ctrl-b,然后按下 d 来断开 tmux 会话

对于 screen:


   
   
  1. screen
  2. # 在 screen 会话中运行你的程序
  3. your_command
  4. # 按下 Ctrl-a,然后按下 d 来断开 screen 会话

选择使用nohuptmuxscreen取决于你的偏好和需求。tmuxscreen还提供了许多其他功能,例如在多个窗格中同时运行不同的命令。

3 final shell 断开后服务器如何继续执行令?

        在Linux中,当你在终端中执行一个命令,并且希望在终端关闭后该命令继续执行,你可以使用 nohup 命令,或者将命令放在后台执行。下面是两种常用的方法:

方法一:使用 nohup 命令
nohup your_command > output.log 2>&1 &

   
   
  • your_command 是你要执行的命令。
  • output.log 是命令输出的日志文件,可以省略。

此命令将 your_command 在后台执行,并将输出写入 output.log 文件。nohup 命令会忽略挂断(hangup)信号,从而使命令在终端关闭后继续执行。

方法二:将命令放在后台执行
your_command &

   
   

在命令末尾加上 & 符号,将命令放在后台执行。这样在终端关闭后,命令仍然在后台继续执行。你可以使用 jobs 命令查看后台任务。

请注意,这两种方法都可以在终端关闭后使命令继续执行,但在某些情况下,你可能还需要考虑输出和错误信息的重定向,以及可能产生的日志。

4 你可以使用 jobs 命令查看当前终端中正在后台运行的任务

这个命令会列出当前终端会话中的作业(jobs)信息,包括作业编号、作业状态以及相关的命令。以下是一些常用的 jobs 命令选项:

(1) 查看后台作业:
jobs

   
   
(2)将作业移动到前台:
fg %job_number

   
   

使用这个命令,你可以将指定编号的作业移动到前台运行。

(3) 将作业放到后台:
bg %job_number

   
   

这个命令可以将指定编号的作业从前台移到后台运行。

(4)终止后台作业
kill %job_number

   
   

使用这个命令可以终止指定编号的后台作业。

在上述命令中,%job_number 是作业的编号,可以使用 jobs 命令查看。

请注意,这些命令在当前终端会话中有效。如果你使用了 nohup 或者在终端关闭后重新连接到服务器,你可能需要使用其他方式来管理后台任务,比如使用 ps 或者其他作业控制工具。

5 如果你使用了 nohup 或者在终端关闭后重新连接到服务器,如何管理后台任务?

        如果你在终端关闭后重新连接到服务器,可能需要使用其他工具来管理后台任务,因为 jobs 命令只能查看当前终端会话中的作业。以下是一些其他用于管理后台任务的工具和命令:

(1)ps 命令:

使用 ps 命令可以列出当前正在运行的进程。你可以使用以下命令来查找特定的进程:

ps aux | grep your_command

   
   

这会列出包含 your_command 的所有进程。通过查看进程的PID(进程ID),你可以确定后台任务的运行情况。

(2)pgrep 命令:

pgrep 命令可以通过进程名来查找进程的PID。例如

pgrep your_command

   
   

这将返回包含 your_command 的所有进程的PID。

(3)pkill 命令:

使用 pkill 命令可以通过进程名终止进程。例如:

pkill your_command

   
   

这将终止所有包含 your_command 的进程。

(4)tmux 或 screen:

如果你在使用 tmuxscreen,你可以使用相应的命令来查看和管理后台会话。例如,在 tmux 中,你可以使用以下命令:

tmux list-sessions

   
   

 这会列出所有 tmux 会话,你可以重新连接到其中一个会话以查看和管理后台任务。

这些命令和工具可以帮助你在终端关闭后重新连接到服务器时查看和管理之前在后台运行的任务。

更多参考

https://blog.csdn.net/qq_45100200/article/details/130382844
https://blog.csdn.net/weixin_51176105/article/details/133893901
https://www.bilibili.com/video/BV1QP411Q7E1/
https://blog.csdn.net/qq_36955294/article/details/122114188
https://blog.csdn.net/weixin_55073640/article/details/123155292
https://www.jb51.net/server/309942gel.htm
https://blog.csdn.net/qq_40721108/article/details/129411611
https://blog.csdn.net/m0_46521785/article/details/113100183

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于Linux服务器频繁断开连接的问题,有几个可能的原因和解决方法。 1. 网络问题:首先,确保服务器的网络连接稳定。检查网络设备(如路由器、交换机、网线)是否正常工作。你可以尝试使用其他设备连接同一网络,或者尝试连接其他网络来排除网络问题。 2. SSH超时设置:如果你是通过SSH连接服务器,可能是SSH会话超时导致断开连接。你可以修改SSH配置文件来增加超时时间。打开SSH配置文件(通常位于/etc/ssh/sshd_config),找到"ClientAliveInterval"和"ClientAliveCountMax"参数,并适当增加它们的值。然后重启SSH服务。 3. 防火墙和路由器设置:确保服务器的防火墙和路由器没有配置规则或策略会导致断开连接。检查防火墙日志和路由器配置,确保它们没有限制或阻止服务器连接。 4. 系统负载过高:服务器的系统负载过高可能导致连接断开。你可以使用命令"top"来查看系统的负载情况,找到占用CPU或内存较高的进程,并采取相应的措施来降低系统负载。 5. SSH客户端设置:如果是通过SSH客户端连接服务器,检查客户端的设置是否会导致断开连接。有些客户端可能有超时设置或断开空闲连接的选项,你可以尝试调整这些设置来解决问题。 请注意,这只是一些可能的解决方法,具体原因需要根据实际情况进行排查。如果问题仍然存在,建议在相关的技术社区或论坛上寻求帮助,以便能够得到更详细和针对性的解决方案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值