GuguMelon's Blog

今天所做之事勿候明天,自己所做之事勿候他人。

0%

nohup后台运行程序

再也不用担心断网服务器连接失败从而功夫全废啦!

在运行一个数据预处理的代码时,估算了一下时间,发现没10个小时跑不完,而我又不可能一直开着电脑(走动+晚上断电),于是想起之前看到的后台运行程序,运行开始后,不用担心本地机关机或断网,可以说很舒服了。

screen指令

一开始看到的是screen指令,但是服务器的机子并没有安装……但还是记录一下用法吧

1
2
3
4
5
6
7
8
9
10
11
screen -S name 创建一个新的screen

输入你想要的运行的内容

ctrl-a d 先按ctrl+a,再按d,dettach,此时你可以关闭连接了

screen -ls 查看当前有哪些会话,并显示id

screen -r id 恢复会话

screen -S id -X quit 删除会话

nohup指令

1
2
3
nohup ./start-dishi.sh >output 2>&1 &

jobs 查看后台运行的任务

操作系统中有三个常用的流:
  0:标准输入流 stdin
  1:标准输出流 stdout
  2:标准错误流 stderr
一般当我们用 > console.txt,实际是 1>console.txt的省略用法;< console.txt ,实际是 0 < console.txt的省略用法。

2>&1意思是把标准错误(2)重定向到标准输出中(1),而标准输出又导入文件output里面,所以结果是标准错误和标准输出都导入文件output里面了。