1. 将程序的输出显示到屏幕,同时写入到log文件
nohup python -u main.py 2>&1 | tee -a log.txt &
-
nohup 放在命令的开头,表示不挂起(no hang up),也即,关闭终端或者退出某个账号,进程也继续保持运行状态,一般配合&符号一起使用。如nohup command &
-
加上-u(unbuffered)参数后,表示python执行时,会强制其标准输出也同标准错误一样不通过缓存直接打印到屏幕。
如果不加u的话可能会发现print的内容无法显示到屏幕上。 -
2>&1 也就表示将错误重定向到标准输出上。2表示标准错误,1表示标准输出。这里的&相当于转义字符,如果不加&则会变成把标准错误2输出到名为1的文件中。
-
tee -a 表示在文件末尾追加,不会覆盖原本内容。
-
& 放在命令到结尾,表示后台运行,防止终端一直被某个进程占用,这样终端可以执行别到任务。
参考:https://blog.csdn.net/weixin_43693967/article/details/129866980