ssh关闭后程序不会运行
时间: 2023-05-04 17:05:39 浏览: 285
SSH是远程登录协议,如果关闭SSH连接,其对应的登录会话也会结束。如果登录时启动的程序未能自动在后台运行,那么程序会随着SSH会话的结束而停止运行。
程序未能在后台运行可能是由于以下原因引起的:
1.程序没有在后台运行的参数运行。
2.SSH连接一旦中断,程序便会立即停止。
3.没有使用nohup、screen等方法将程序置于后台运行。
为了避免程序在SSH关闭后停止运行,可以采取以下措施:
1.使用nohup或screen等方法将程序置于后台运行。
nohup和&可以将程序置于后台运行,保证程序不会因为SSH关闭而停止。
2.使用tmux或screen等工具实现远程会话管理。
这些工具可以使你可以保持对该程序的远程会话,并在程序在SSH关闭后继续运行。
3.使用系统服务启动程序并保持运行状态。
可以将程序配置为系统服务,这样即使SSH关闭,程序也可以在后台运行。
总之,使用nohup、screen、tmux、systemd等方法可确保程序在SSH关闭后始终不会停止运行,大大提高了程序的运行稳定性。
相关问题
linux系统nohup运行完程序后,自动中止程序
如果使用nohup在Linux系统中运行程序,程序会在后台运行,但是在关闭终端窗口或者断开SSH连接后,程序会被挂起或者中止。这是因为nohup默认将程序的输出重定向到nohup.out文件中,当用户退出登录时,该文件描述符被关闭,导致程序被中止。为了解决这个问题,可以使用以下两种方法:
1. 使用&符号将程序放到后台运行,并且将输出重定向到/dev/null,这样程序会一直在后台运行,即使用户退出登录也不会被中止。例如:nohup ./program &> /dev/null &。
2. 使用tmux或screen等终端复用工具,创建一个会话,并在该会话中运行程序,这样即使用户退出登录也可以重新连接到该会话并继续运行程序。例如:tmux new-session -s mysession "./program"。
linux 程序后台运行命令
在Linux中,可以使用以下命令将程序运行在后台:
1. 使用&符号,例如:
```
$ command &
```
此命令将会将"command"命令运行在后台,将控制台交还给用户。
2. 使用nohup命令,例如:
```
$ nohup command &
```
此命令将会将"command"命令运行在后台,并将其输出重定向到nohup.out文件中。即使用户退出终端或关闭SSH连接,程序也将继续运行。
3. 使用screen命令,例如:
```
$ screen
$ command
```
此命令将会打开一个新的终端窗口,将"command"命令运行在其中。用户可以随时使用Ctrl+A+D命令将其放入后台运行。使用screen命令的优点在于可以在同一个终端窗口中同时运行多个程序,并且可以在需要时切换它们。