最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

Debian11 设置开机自动启动py文件

业界 admin 6浏览 0评论

记录一下工作中,遇见的带图形界面的Python程序的开机自启动实现方案以及问题。

一,设置一个启动可执行文件的脚本

1、进入包含要运行py文件的文件夹下

cd /path/to/python/script/directory
#确保将/path/to/python/script/directory替换为你的可执行文件的实际路径

2、创建sh脚本(文本名.sh)(如果不存在会自动创建)

sudo vim myapp.sh

3、在sh文件中输入以下内容

#!/bin/bash

    ### BEGIN INIT INFO
    # Provides:myapp
    # Required-Start: $network $remote_fs $local_fs
    # Required-Stop: $network $remote_fs $local_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: myapp
    # Description: myapp_start
    ### END INIT INFO


# Change to the directory containing the Python script
cd /path/to/python/script/directory
#确保将/path/to/python/script/directory替换为你的可执行文件的实际路径

# Run the Python script
python myscript.py

exit 0

按ESC退出编辑,输入:wq保存并退出。

4、给这个脚本文件执行权限。

sudo chmod +x myapp.sh

5、运行脚本

./myapp.sh

如果在你的用户命令行而非root用户命令行下成功启动,恭喜你完成了第一步。

二,使用systemd服务

1,创建一个新的服务单元文件

cd /etc/systemd/system

sudo vim my_service.service

2、 在service文件中输入以下内容

[Unit]
Description=My Service
After=network.target
 
[Service]
Type=simple
ExecStart=/path/to/your/script.sh
#如果脚本要运行图形界面要加上下面两句
Environment="QT_QPA_PLATFORM=xcb"
Environment="DISPLAY=:0"
 
[Install]
WantedBy=multi-user.target

3、重新加载systemd管理器配置

sudo systemctl daemon-reload

4、启用服务以在启动时自动启动

sudo systemctl enable my_service.service

重新开机即可实现开机自启

三、问题解决

如果这个.sh脚本还会报错,应该是环境的问题,可以通过root用户和普通用户在可执行文件的目录下运行.sh脚本,如果普通用户可以运行,root用户不能运行,基本上就是环境依赖的问题了,在root用户下安装对应环境即可。

记录一下工作中,遇见的带图形界面的Python程序的开机自启动实现方案以及问题。

一,设置一个启动可执行文件的脚本

1、进入包含要运行py文件的文件夹下

cd /path/to/python/script/directory
#确保将/path/to/python/script/directory替换为你的可执行文件的实际路径

2、创建sh脚本(文本名.sh)(如果不存在会自动创建)

sudo vim myapp.sh

3、在sh文件中输入以下内容

#!/bin/bash

    ### BEGIN INIT INFO
    # Provides:myapp
    # Required-Start: $network $remote_fs $local_fs
    # Required-Stop: $network $remote_fs $local_fs
    # Default-Start: 2 3 4 5
    # Default-Stop: 0 1 6
    # Short-Description: myapp
    # Description: myapp_start
    ### END INIT INFO


# Change to the directory containing the Python script
cd /path/to/python/script/directory
#确保将/path/to/python/script/directory替换为你的可执行文件的实际路径

# Run the Python script
python myscript.py

exit 0

按ESC退出编辑,输入:wq保存并退出。

4、给这个脚本文件执行权限。

sudo chmod +x myapp.sh

5、运行脚本

./myapp.sh

如果在你的用户命令行而非root用户命令行下成功启动,恭喜你完成了第一步。

二,使用systemd服务

1,创建一个新的服务单元文件

cd /etc/systemd/system

sudo vim my_service.service

2、 在service文件中输入以下内容

[Unit]
Description=My Service
After=network.target
 
[Service]
Type=simple
ExecStart=/path/to/your/script.sh
#如果脚本要运行图形界面要加上下面两句
Environment="QT_QPA_PLATFORM=xcb"
Environment="DISPLAY=:0"
 
[Install]
WantedBy=multi-user.target

3、重新加载systemd管理器配置

sudo systemctl daemon-reload

4、启用服务以在启动时自动启动

sudo systemctl enable my_service.service

重新开机即可实现开机自启

三、问题解决

如果这个.sh脚本还会报错,应该是环境的问题,可以通过root用户和普通用户在可执行文件的目录下运行.sh脚本,如果普通用户可以运行,root用户不能运行,基本上就是环境依赖的问题了,在root用户下安装对应环境即可。

发布评论

评论列表 (0)

  1. 暂无评论