在计算引擎ssh问题中用python追加文件

在计算引擎ssh问题中用python追加文件,python,ssh,google-compute-engine,Python,Ssh,Google Compute Engine,我在计算引擎中有一个debian实例 我在上面运行了一个python脚本, 在脚本的末尾,我有以下代码来附加一个tkt文件 with open("Optimisation.txt", "a+") as myfile: myfile.write(str(Results)) myfile.write("\n" ) 我使用python MyScript.py& 当我打开ssh控制台时,它会正确地追加文件,但当我关闭控制台时,scipt会继续工作,但

我在计算引擎中有一个debian实例

我在上面运行了一个python脚本, 在脚本的末尾,我有以下代码来附加一个tkt文件

with open("Optimisation.txt", "a+") as myfile:

            myfile.write(str(Results))
            myfile.write("\n" ) 
我使用
python MyScript.py&

当我打开ssh控制台时,它会正确地追加文件,但当我关闭控制台时,scipt会继续工作,但不再显示文件

当我重新打开控制台并输入
sudo-s
&
ps-fux
时,我可以看到scipt正确运行


在我的计算机和我的开放式控制台debian上,它工作,但在我关闭控制台时不工作。

python MyScript.py&将使用子shell在后台运行该进程。如果当前shell被终止(比如通过注销),所有子shell也将被终止,因此后台进程也将被终止。nohup命令忽略HUP信号,因此即使当前shell终止,子shell和myprocess.out也将继续在后台运行

理想情况下,您应该使用以下命令调用脚本

nohup python MyScript.py > MyOutput.log 2>&1 &

你能澄清一下“控制台”是什么意思吗?你能在本地机器上运行这个脚本吗?您还可以通过以下链接查看日志,查看是否有任何其他进程正在中断您的脚本:谢谢,我正在尝试。您能解释一下您解释的这一部分吗?'>MyOutput.log 2>&1&它将STDOUT和STDERR重定向到日志文件(MyOutput.log)@guiguidm 2是STDERR的Unix文件号。1是标准输出的Unix文件号。
2>&1
表示将stderr写入stdout而不是stderr。这样,stderr和stdout都可以重定向到同一个文件。