我在想我的run.py脚本是否可以在两种不同模式下运行.
当处于nohup模式时:nohup python run.py& ,就像完整的日志输出模式.但是在正常模式下python run.py,就像日志抑制模式.因此,对于用户而言,这将是整洁清晰的.
所以,我的问题:我的可运行python脚本本身如何在nohup模式或正常模式下运行?
解决方法:
nohup命令针对启动的进程修改操作系统级别的信号处理.这没有反映在命令的参数中,但是进程可以查询自身以检查安装了哪些操作或信号处理程序.方法如下:
import signal
if signal.getsignal(signal.SIGHUP) == signal.SIG_DFL: # default action
print("No SIGHUP handler")
else:
print("In nohup mode")
这将适用于任何Unix系统,并且可能适用于Windows(未经测试).还有其他方法可以从外壳程序或从程序内部设置信号处理程序,但是如果您只是试图区分nohup和常规调用,这将告诉您所有您需要了解的信息.