xshell一款很好用的服务器连接工具,上学期间就经常会使用到,最近正好需要操作Linux服务器来进行实验分析,由于网络的不稳定性因素以及其他客观因素较多,想要保证程序的正常执行就需要将其设置为后台运行,而不能直接连接着执行,不然,一旦断网或者其他的因素,程序就白跑了,在设置为后台模式运行的时候,简单的操作命令如下:
nohup python demo.py &
默认会再代码的同级目录下面生成一个nohup.out文件,用来存放demo.py的输出。
当然如果想要指定输出到不同的结果文件里面也是可以的,使用下面的命令:
nohup python demo.py >demo.out 2>&1 &
根据自己的需要修改demo.out 为自己想要的名称即可。
今天主要的问题是我在执行后台运行命令的时候居然报错了。。。。。。。。
最初我以为是numpy模块没有安装上,但是转念一想,不使用后台模式运行的时候代码没有报错的啊,感觉很奇怪,就来简单地进行一下验证:
这下确认 了真的不是模块未安装的问题了,就要好好研究一下为什么会出现这样的问题了。
一般Linux在安装的时候都会有默认版本的Python被安装上,这里会不会也是这个版本的问题导致的呢?想到这里我果断来进行验证:
看来问题就是版本的问题了,之前使用alias对python3进行了别名的设置,直接执行脚本的时候是可以的,但是使用nohup的时候,它不清楚到底要使用哪一个版本的python,这个时候最简单的办法就是直接告诉nohup要用哪一个版本的Python解释器来执行代码,我的简单解决方法如下:
nohup python3 demo.py &
问题成功解决,简单记录一下,希望帮到遇到同样问题的人。