我的 Linux 机器(Debian squeeze)上运行着一个进程,需要几个小时(或几天)才能完成。
我不想停止它,然后使用 重新启动它screen
,tmux
或者将输出重定向到nohup
。
是否有一种安全的方法可以将其置于后台^Z
,bg
以便我关闭 ssh 会话后它将继续运行?
答案1
使用
commandtoexecute &> /dev/null &
它将在后台运行您的进程,并将所有输出打印到 /dev/null。
替换/dev/null
为另一个文件以查看输出。
例如
commandtoexecute &> /tmp/file1 &
再次使用
tail -f /tmp/file1
附加到输出
您还可以重定向 stdin,请参阅 http://www.tuxfiles.org/linuxhelp/iodirection.html
如果您想脱离已在运行的进程。使用
disown <pid>
pid 来表示您的进程 ID。
您也可以将终端更改为另一个终端:
- 开始屏幕
- 获取进程的 pid
- 跑步
reptyr <pid>
- 使用 CTRL+A+D 分离