Linux ssh结束后,继续执行程序
我有一个脚本,它运行一个具有1000个不同参数的可执行文件(每次执行一个参数)。这可能需要很多小时。我在实验室的电脑里运行这个。现在,我通过ssh在家里的电脑上完成这项工作。我可以执行ssh,开始执行脚本,注销,但以某种方式允许脚本继续执行吗 我的意思是实验室的电脑仍然是开放的,我不关心程序的标准。有趣的结果将写入一个文件,我可以在再次登录时检查该文件Linux ssh结束后,继续执行程序,linux,ssh,Linux,Ssh,我有一个脚本,它运行一个具有1000个不同参数的可执行文件(每次执行一个参数)。这可能需要很多小时。我在实验室的电脑里运行这个。现在,我通过ssh在家里的电脑上完成这项工作。我可以执行ssh,开始执行脚本,注销,但以某种方式允许脚本继续执行吗 我的意思是实验室的电脑仍然是开放的,我不关心程序的标准。有趣的结果将写入一个文件,我可以在再次登录时检查该文件 我尝试过这样做,但一旦我注销,脚本就会停止执行。因为我无法将问题标记为的副本,因为“重复的问题必须存在于堆栈溢出上”,并且因为我想分享我的经验,
我尝试过这样做,但一旦我注销,脚本就会停止执行。因为我无法将问题标记为的副本,因为“重复的问题必须存在于堆栈溢出上”,并且因为我想分享我的经验,我将回答我自己的问题
tmux
和screen
是最佳答案。但是,第一个在我的Debian中没有被识别(可能需要安装),而第二个已经准备好了,并且可以正常工作,对于这个简单的场景:
- ssh到您的远程设备中。键入
,然后启动所需流程screen
- 按Ctrl-A,然后按Ctrl-D。这将“分离”屏幕会话,但保持进程运行。您现在可以从远程框中注销
- 如果您想稍后回来,请再次登录并键入
,这将“恢复”屏幕会话,您可以看到进程的输出screen-r
screen-S name
来命名屏幕会话,以便以后更容易连接到正确的会话。”
正如deviantfan所说,“
tmux
需要安装。一个简单的将tmux安装为root就足够了。”因为我不能将问题标记为的重复,因为“重复的问题必须存在于堆栈溢出上”,并且因为我想分享我的经验,我将回答我自己的问题
tmux
和screen
是最佳答案。但是,第一个在我的Debian中没有被识别(可能需要安装),而第二个已经准备好了,并且可以正常工作,对于这个简单的场景:
- ssh到您的远程设备中。键入
screen
,然后启动所需流程
- 按Ctrl-A,然后按Ctrl-D。这将“分离”屏幕会话,但保持进程运行。您现在可以从远程框中注销
- 如果您想稍后回来,请再次登录并键入
screen-r
,这将“恢复”屏幕会话,您可以看到进程的输出
这句话似乎也不错:“我通常会用screen-S name
来命名屏幕会话,以便以后更容易连接到正确的会话。”
正如deviantfan所说,“tmux
需要安装。一个简单的将tmux安装为root就足够了。”我假设当您尝试时,您使用myscript&
将它放在后台,然后注销。一些GNU/Linux发行版默认将SIGHUP
发送到所有以会话tty作为其tty的进程(或者从登录会话中查找进程的其他方式,如父PID树,我忘了)
因此,解决方案是:
nohup myscript &
这真的很容易。在nohup
下运行时,进程将忽略挂起信号nohup
将stdin从/dev/null重定向到终端,并将stdout/stderr重定向到nohup.out
。然后读取nohup.out
,它将在调用脚本的目录中创建
tmux真的很好,我一直在使用它,但实际上并不需要它。(我实际上使用screen,但那只是因为我开始使用screen时tmux不存在,切换会产生一些重新学习的开销。)我假设当您尝试时,您使用myscript&
将它放在后台,然后注销。一些GNU/Linux发行版默认将SIGHUP
发送到所有以会话tty作为其tty的进程(或者从登录会话中查找进程的其他方式,如父PID树,我忘了)
因此,解决方案是:
nohup myscript &
这真的很容易。在nohup
下运行时,进程将忽略挂起信号nohup
将stdin从/dev/null重定向到终端,并将stdout/stderr重定向到nohup.out
。然后读取nohup.out
,它将在调用脚本的目录中创建
tmux真的很好,我一直在使用它,但实际上并不需要它。(我实际上使用了screen,但那只是因为我开始使用screen时tmux不存在,切换会带来一些重新学习的开销。)解释得很好。该死,我在输入问题时检查了重复项。也许这个功能的一个改进就是也可以查看其他相关网站,比如askubuntu。我现在正在阅读链接@fedorqui,我完全同意这一点。我们有多个重复的网站,这就是为什么我总是使用谷歌搜索。我强烈建议你这样做。事实上,一段时间前,在meta askubuntu,但从未回去让它更可见。如果你愿意,就去吧@fedorqui,我在meta上问:解释得很好。该死,我在输入问题时检查了重复项。也许这个功能的一个改进就是也可以查看其他相关网站,比如askubuntu。我现在正在阅读链接@fedorqui,我完全同意这一点。我们有多个重复的网站,这就是为什么我总是使用谷歌搜索。我强烈建议你这样做。事实上,一段时间前,在meta askubuntu,但从未回去让它更可见。如果你愿意,就去吧@fedorqui,我在meta上问:是的,tmux需要安装。一个简单的apt-get-install-tmux