Answers:
通常,&
当我想在后台运行时,我会使用一条不会花费很长时间的命令,或者在我意外退出会话的情况下,我不会真正在意该程序是否终止的命令。
xcalc &
rdesktop 1.2.3.4 &
./this_only_takes_a_few_seconds_but_i_want_my_shell_back.py &
通过VPN或狡猾的远程连接进行工作时,我倾向于使用nohup
运行所有需要花费一些时间的东西。例如,在远程主机上运行大型数据导入时,您可能希望使用nohup
以确保断开连接不会使您在重新连接时重新开始。
nohup ./do_data_load.py mydatafile.txt &
当开发人员没有适当地守护服务时,也会使用它,因此您必须使用nohup
它来确保注销时不会杀死它。
nohup sillyd &
如果您碰巧忘记nohup
在运行最后两个示例时使用的东西,则可以使用内置的bash或zsh disown
达到相同的效果。
$ sillyd &
[1] 12345 # Whoops!
$ disown %1
如果nohup
不使用&
,很少会使用它,因为如果您注销了,就无法真正重新加入nohup会话。这几乎消除了它对交互式命令的用处。如果您有一个交互式命令,希望在会话中保持不变或避免复杂的断开连接,则可以使用screen
。全副武装和作战screen
会议的火力超出了本文的范围,因此您应该更详细地进行检查。
byobu
它在屏幕上添加一些不错的功能。在大多数apt仓库和Red Hat的EPEL仓库中都可以使用它。