所以这是一个多部分的问题,我有一个 vps,我通过 ssh 连接到它来运行一些进程。
我希望能够启动进程并关闭我的终端窗口,但仍然能够通过 ssh 返回并检查进程。
我还希望每个进程都将其打印到终端的内容输出到一个文件中,最好以启动它的命令命名。(包括标志等)
我怎样才能最好地实现这个目标?
答案1
实现这一目标的方法可能有多种,但以下是一些基本方法:
屏幕
screen
允许创建虚拟控制台,将其从您的 tty 中分离(CTRLA然后是CTRLD)并screen -r
在您需要时将其重新连接()。
禁止
nohup
是一个允许您运行命令的软件,它将忽略任何挂断信号并将命令的输出写入nohup.out
文件cwd
。实际上,按照以下命令运行ssh
然后注销将使进程继续运行nohup dd if=/dev/random of=/dev/null &
。
球座
tee
命令在非常简单的用法中充当一个 fork 机器,它同时将其写入stdin
文件和stdout
。在你的情况下,这将是ls -alh | tee 'ls'
。如果你还想写入stderr
文件,请将2&>1
(意思是“重定向stderr
到stdout
”)附加到你的基本命令中。
通过结合这些解决方案,您应该能够实现您想要的目标。您还可以看到类似的答案:8703001/1732775。