如何在关闭ssh连接的情况下,让程序继续运行?

本文介绍在Unix和Linux服务器上,通过SSH连接时如何确保断开连接后,正在执行的程序能够继续运行,避免因网络不稳定或意外断开导致任务中断。主要介绍了两种方法:使用nohup命令和screen会话管理器。

http://blog.youkuaiyun.com/u012643122/article/details/48032327

对Unix,Linux类服务器维护经常是通过ssh完成的,而有些操作比较费时,如更新程序等。此时如果断开ssh连接的话,更新程序就会随之被中断。如何保证断开ssh后仍旧能保持更新进程的运行呢?有两种方法:

(1)nohup

#nohup 应用程序名 &
  • 1

此后,如果你断开了ssh,程序依旧运行。此种方式的缺点是,应用程序没有交互界面了,程序的输出将会输出的一个xxx.out文件中,而且以后无法在界面控制程序的结束。必须通过kill的方式。所以这种方式显得很简单粗鲁,很少使用。

(2)screen

#screen
  • 1

回车后进入Screen子界面,此时putty标题栏会指示处于子界面状态,然后运行你的程序

#应用程序名
  • 1

然后按下Ctrl+A后抬起,然后按下d键,此时切换回主界面,Putty的窗口标题栏也会指示。

#进行其他的操作,或者exit
  • 1

此时就是断开ssh,程序仍在运行。以后重新ssh连接后,输入

#screen -ls
  • 1

,查看子界面的代号,然后输入

#screen -r 子界面代号
  • 1

就可以查看当初你程序运行所在的子界面了。

转载于:https://www.cnblogs.com/xqnq2007/p/7488124.html

在使用 VSCode 通过 SSH 进行远程开发时,如果希望程序关闭 VSCode 窗口后仍然继续运行,可以通过以下几种方式实现: ### 1. 使用 `nohup` 命令 `nohup`(No Hang Up)命令可以让程序在终端关闭继续运行。该命令会忽略 `SIGHUP` 信号,防止程序因终端关闭而终止。 示例: ```bash nohup python3 your_script.py & ``` 运行后,输出将被重定向到当前目录下的 `nohup.out` 文件中,除非指定其他输出文件。 ### 2. 使用 `screen` 或 `tmux` `screen` 和 `tmux` 是终端复用工具,可以创建多个会话并在关闭终端后保持运行。 #### 使用 `screen`: - 启动一个新的 `screen` 会话: ```bash screen -S mysession ``` - 在会话中运行程序: ```bash python3 your_script.py ``` - 按下 `Ctrl+A`,然后按 `D` 键,可以分离当前会话。 - 重新连接到会话: ```bash screen -r mysession ``` #### 使用 `tmux`: - 启动一个新的 `tmux` 会话: ```bash tmux new -s mysession ``` - 在会话中运行程序: ```bash python3 your_script.py ``` - 按下 `Ctrl+B`,然后按 `D` 键,可以分离当前会话。 - 重新连接到会话: ```bash tmux attach -t mysession ``` ### 3. 使用后台进程和 `disown` 在终端中启动程序并将其放入后台运行,然后使用 `disown` 命令将其从当前 shell 会话中移除,使其在关闭终端后继续运行。 示例: ```bash python3 your_script.py & disown ``` ### 4. 配置 SSH 的 `ControlMaster` 和 `ControlPath` 引用中提到的 `ControlMaster` 和 `ControlPath` 配置可以用于共享 SSH 连接,避免重复输入身份验证信息。可以在 `~/.ssh/config` 文件中添加如下配置: ``` Host your_remote_host HostName your_remote_host_ip User your_username ControlMaster auto ControlPath ~/.ssh/sockets/%r@%h:%p ControlPersist 600 ``` 确保 `~/.ssh/sockets/` 目录存在,这样可以实现连接复用,提高效率。 ### 5. 结合 VSCode 的终端功能 VSCode 提供了集成终端功能,可以结合 `tmux` 或 `screen` 使用。即使关闭 VSCode 窗口,只要远程服务器上的会话仍在运行程序就可以继续执行。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值