一. 使用方法
nohup python ./train.py >> ./train.log 2>&1 &
nohup ./train.sh > ./train.log 2>&1 &
二.nohup命令
- nohup指不断地运行,是no hang up的缩写,指不间断,不挂断。运行一个进程的时候,不想让其在你退出账号时关闭,即可用nohup。
- nohup在不规定的情况下,所以输出内容会到nohup.out中
三.2>&1
0
表示stdin标准输入,用户键盘输入的内容1
表示stdout标准输出,输出到显示屏的内容2
表示stderr标准错误,报错内容2>&1
是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
四. 整体意义及&
1.&
为后台运行
2.第一条代码,以python环境不间断的运行train.py这个脚本,并且将脚本输出的内容重定向输入train.log
中(>>
意为追加,如果用>
会让其中的内容清空)train.py >> train.log
和train.py 1>>train.log
相同,只是1
(标准输入)被省略了,而后面的 train
.log 2>&1
又将2
(错误内容)输入到标准输出,然后前面的标准输出又输入到train.log
中,意思错误和标准内容都会输出到 train
.log中,其实代码可拆成两块。
nohup python train.py 1>> train.log &
nohup python train.py 2>> train.log &
3.上面代码就是将错误和标准都输出到train.log
,最初的代码只是简化了。而加2>&1
中的&
是为了区别文件1和1
(标准输出),假如为2>1
,那么不就成了将错误内容输出到文件1中。
4.nohup ./train.sh > ./train.log 2>&1 &
也是一样的,将错误和标准全部丢入train.log
中,全部销毁。
参考网址:
- https://blog.csdn.net/weixin_42840933/article/details/85780125?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.channel_param
- https://blog.csdn.net/tswisdom/article/details/8548710?from=singlemessage