centos7中python3程序后台运行和打印到文件中

描述在xshell上运行.py文件关闭xshell(终端)后则不运行,并且要把print的内容输入到文件中

解决:

一让程序在后台运行方法nohup命令:

nohup python3 test.py &
如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,


也就是说把print内容输入到nohup.out这个默认文件中



除非另外指定了输出文件:
nohup python3 test.py > myout.file 2>&1 
在上面的例子中,输出被重定向到myout.file文件中。


拓展:
	2>&1的意思是:
	将标准错误流(2)重定向输出到标准输出流(1)中, 而> myout.file又将标准输出流输出到了myout.file中
	所以2>&1表示把标准错误流和标准输出流都重定向输出到myout.file
拓展:
    为什么需要将标准错误流重定向到标准输出流,那是因为标准错误没有缓冲区,而stdout有。
    如果写成nohup python3 test.py > myout.file 2>myout.file,会导致 myout.filet被两次打开,
    而stdout和stderr将会竞争覆盖

二 print输出的内容输入到nohup.out文件中

原因:
      这是因为python的输出有缓冲,print的内容是先输出到缓冲区,导致nohup.out并不能够马上看到输出
解决:
      python有一个 -u 参数可以禁用缓冲区

要加一个  -u参数

$ nohup python3 -u test.py &

查看nohub.out文件里面的内容

cat   nohup.out

查看实时日志

tail -f test.log

三 查看后台运行程序的端口号

ps -aux | grep test.py
这个是查看test.py程序的端口号

 杀死进程

kill  -9  进程号

 

 

原文链接:

https://blog.csdn.net/qq_24798295/article/details/89925926

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值