Ubuntu远程服务器后台运行程序

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 & 因为会造成相同文件名冲突。

查看后台运行的任务:
  1. 在当前同一个终端,使用jobs 查看,可以使用fg %n 将编号为n的任务转前台
  2. 如果终端已经关掉重新开一个,使用ps 查看
  3. 监控标准输出可以使用tail -f myout.file

2. 使用screen

screen Command

​ 此命令会打开一个新的窗口并在这个窗口运行command指令,要退出时使用Ctrl+a,d退出当前窗口到主窗口。

​ 使用screen -ls 可以查看screen会话。

​ 使用screen -r n 重新连接编号为n的screen使其接着运行

参考博客:http://blog.csdn.net/wind19/article/details/4986458