答案1
是的,进程将收到“挂断”信号 ( SIGHUP
),该信号通常不会被捕获,并导致进程终止。读取它指向的页面 man -a signal
。man
该nohup
命令旨在克服这一困难,无需screen
或的开销tmux
(nohup
最早发明于“挂断”指调制解调器时)。您可以指定一个日志文件,或者让nohup
保存STDOUT
并STDERR
到./nohup.out
(如果可能),或者$HOME/nohup.out
如果不行。
nohup command >$HOME/command.log &
答案2
是的,如果您注销,您已启动的命令将会停止。但您可以使用以下screen
命令启动它们:
$ screen command
您可以从这个虚拟屏幕退出(Ctrl+A, D
),同时让命令继续运行。
您可以启动命令并立即将其发送到虚拟分离屏幕:
$ screen -fa -d -m command
要获取屏幕会话的概览,请使用以下命令:
$ screen -list
There are screens on:
2457.pts-2.myserver (22.10.2018 20:04:35) (Detached)
12596.pts-3.myserver (28.08.2018 22:10:00) (Detached)
4632..myserver (15.07.2018 20:56:55) (Detached)
3 Sockets in /run/screen/S-me.
$
使用开关将会话带回到前台-r
,同时提供会话 ID:
$ screen -r 2457.pts-2.myserver