1. 使用nohup
nohup Command &
例如运行matlab程序:
nohup matlab -nodisplay -r 'run main' 1> running.log 2> running.err &
需要注意的是: 在执行完这条命令后终端会返回ignoring input and appending output to nohup.out,此时表示挂起成功,但需要在键盘按任意键返回到shell输入命令窗口,然后通过在shell中输入exit来退出终端。
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件:
nohup command > myout.file 2>&1 &
在上面的例子中,标准输出和标准错误被重定向到myout.file文件中。linux中默认定义两个变量:1指标准输出;2指错误输出。但是上面的指令不能写成:nohup command > myout.file 2>myout.file &
因为会造成相同文件名冲突。
查看后台运行的任务:
- 在当前同一个终端,使用
jobs
查看,可以使用fg %n
将编号为n的任务转前台 - 如果终端已经关掉重新开一个,使用
ps
查看 - 监控标准输出可以使用
tail -f myout.file
2. 使用screen
screen Command
此命令会打开一个新的窗口并在这个窗口运行command指令,要退出时使用Ctrl+a,d
退出当前窗口到主窗口。
使用screen -ls
可以查看screen会话。
使用screen -r n
重新连接编号为n的screen使其接着运行