关于nohup和screen在linux系统上实现后台运行python程序

    技术2022-07-10  116

    言简意赅地做个笔记

    目标

    让python程序在Linux系统后台运行,同时实现关闭远程终端后,能继续运行并保存屏幕输出。

    对比

    nohupscreennohup可以屏蔽hup信号,在退出终端后,保持程序后台运行,可以记录输出文件,但是不能查看上次离开后屏幕内容,同时不知道程序运行情况。screen相比之下,比nohup功能全面一点,只是需要安装screen,使用上,其实还好,不复杂。screen可以像windows一样,保存窗口到后台,可以退出终端连接,在下一次连接后,还能查看上次屏幕窗口。

    screen使用记录

    sudo apt-get install screenubuntu系统安装screensudo yum install screencentos系统安装screenscreen -S name新建窗口namescreen python main.py后台运行python的main.pyscreen -ls列出当前所有的sessionscreen -r 34262恢复之前的窗口,注意:34262这个不是固定的,通过screen -ls查看的。随机分配的。ctrl+a+d退出当前窗口screen -S session_name -X quitkill掉该窗口

    注意:

    在跑代码的时候,等我第二天程序跑完去看的时候,发现我的screen窗口被关闭了,里面跑的所有的数据都看不到了。后来发现,screen在窗口里运行代码完成后会自动退出窗口,当然数据也都会看不见了。于是我在代码里加入了一个死循环,使程序一直保持执行状态(当然这不是最优方案)。

    import time while True: time.sleep(5)

    screen命令参考连接:https://blog.csdn.net/han0373/article/details/81352663 777问题:sudo chmod 777 文件名

    Processed: 0.011, SQL: 9