在后台打开屏幕并启动进程

在后台打开屏幕并启动进程

我想做以下事情:重启后我想启动一个屏幕,然后执行一个脚本。因此我搜索了 crontab 和 screen,也找到了一些答案。但是,对我来说都不起作用。我正在运行安装了 screen 的 ubuntu linux,我想运行一个 python 脚本。

以下操作screen -d -m会打开一个屏幕但不运行任何内容。相反,我想创建一个屏幕并启动一个脚本。从我在网上找到的答案来看,这是通过 实现的screen -d -m scriptname。在我的例子中,脚本名称是 main.py(我检查过它是可执行的)。

但是,screen -m -d /path/to/main.py没有创建屏幕。这是我的控制台输出

$ screen -d -m /opt/main.py
$ screen -x
There is no screen to be attached.

但是,这有效但不能执行 python 脚本:

$ screen -d -m
$ screen -x

我做错什么了?谢谢 :)

答案1

确实screen -d -m /path/to/executable-python-script.py运行良好。

但是,脚本终止后,屏幕会自动关闭。另外,请记住,类似这样的screen -d -m /usr/bin/python3 /path/to/executable-python-script.py操作不是工作!

因此,使用以下 Python 脚本testscript.py进行测试:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
import time

def main():
    for i in range(10):
        print("Python3 Script " + str(i))
        time.sleep(5)


main()

然后执行以下操作:

  1. chmod +x testscript.py
  2. screen -d -m /path/to/testscript.py
  3. 快速检查screen -x脚本是否正在运行

相关内容