1、nohup
nohup sh run.sh 2>&1 &
nohup放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态
不指定日志文件的情况下,输出内容默认写入当前运行命令路径下的nohup.out文件中。
2、2>&1
0 表示stdin标准输入,用户键盘输入的内容
1 表示stdout标准输出,输出到显示屏的内容
2 表示stderr标准错误,报错内容
2>&1 是一个整体,>左右不能有空格,即将错误内容重定向输入到标准输出中去。
3、&
& 放在命令到结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别到任务
4、举例说明如下:
nohup python my.py >> /usr/local/python/xxf/my.log 2>&1 &
// 2>&1中的`&`是为了区分文件1和标准输出1,是一个区分符号,好比python中转义符的作用。而最末尾的`&`是将该命令后台运行。
该命令的含义是用python不间断的运行my.py这个脚本,并且将脚本输出的内容重定向输入my.log中(>>意为追加,如果用>会让其中的内容清空)
后面的my.log 2>&1 是将2(错误内容)输入到&1(标准输出),而&1(标准输出)输入到my.log中,即错误和标准内容都会输出到my.log中。