我需要确定调用我的Python脚本的shell是否处于交互模式.如果它处于交互模式,程序应将输出管道输出到较小(1)以便于阅读.如果没有,它应该只是将其输出打印到stdout,以允许它被传送到打印机,文件或不同的寻呼机.
在shell脚本中,我会检查是否定义了提示变量$ PS1,或者在$ - 变量中存储的标志中查找-i选项.
在Python中测试交互性的首选方法是什么?
2个问题:
1) 是否有任何 Linux/Posix API 可以知道某个进程是否已被调用为后台进程?
linux> myprogram &
Run Code Online (Sandbox Code Playgroud)
是否可以myprogram检测到它已被调用在后台运行的代码(通过&)?
2) 是否有任何 Linux/Posix API 可以使进程在后台运行,即使它已作为前台进程启动?IE 以某种方式在运行时从外壳“分离”..(要么将自身完全从外壳分离,要么作为外壳的后台进程运行)。
linux> myprogram
**** starting myprogram as a background job ****
linux>
Run Code Online (Sandbox Code Playgroud)
shell 提示应该立即返回给我,因为它myprogram已经与 shell 分离并在后台运行