python-54-后台运行python等程序/开机自启程序

部署运行你感兴趣的模型镜像

前言

我们在Windows运行python程序或其它程序一般是使用着dos窗口,看着这个黑窗口一直开着感觉不方便。

是不是有种强迫症,不想看到它,但又要让它后台运行?

1.bat脚本准备好

如需要后台运行main.py程序入口

python main.py

2.vbs脚本

如下命令中需要后台运行 start.bat 文件

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c start.bat",vbhide

3.想要关闭程序则

taskkill /IM python.exe /F
taskkill /IM cmd.exe /F

当然不单单是python程序可以这样,其它Windows程序想要后台运行都可以哟。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

<think>我们正在讨论如何使用systemctl配置Python脚本开机自启并后台运行。根据之前的对话和引用,用户特别要求使用systemctl,并希望程序后台运行。以下是详细的步骤说明:###步骤1:创建服务文件在`/etc/systemd/system/`目录下创建一个以`.service`结尾的服务文件,例如`my_python_app.service`:```bashsudovim/etc/systemd/system/my_python_app.service```###步骤2:编写服务配置在服务文件中输入以下内容(请根据实际情况修改路径和参数):```ini[Unit]Description=MyPythonApplication#服务描述After=network.target#指定在网络服务启动之后启动[Service]Type=simple#使用simple类型,程序将在后台运行User=your_username#替换为你的用户名,例如pi或rootWorkingDirectory=/path/to/your/app#替换为你的应用所在目录,例如/home/pi/raspberry/flask_aiExecStart=/usr/bin/python3/path/to/your/script.py#启动命令,使用绝对路径Restart=on-failure#仅在非正常退出时重启,也可以使用alwaysRestartSec=10#重启间隔(秒)Environment="PYTHONUNBUFFERED=1"#可选:禁用输出缓冲[Install]WantedBy=multi-user.target#指定系统启动级别```**关键配置说明**:1.**`Type=simple`**:这是推荐的类型,systemd会将该程序作为主进程运行,并自动管理后台运行[^3][^4]。2.**`ExecStart`**:必须使用绝对路径指定Python解释器和脚本路径,如引用[1]和[4]所示[^1][^4]。3.**`WorkingDirectory`**:设置工作目录,确保脚本中的相对路径能正常工作。4.**`Restart`策略**:推荐使用`on-failure`或`always`,确保服务崩溃后自动重启[^4]。5.**`User`**:指定运行服务的用户,避免权限问题。###步骤3:设置权限并启用服务保存服务文件后,执行以下命令:```bashsudosystemctldaemon-reload#重载服务配置sudosystemctlenablemy_python_app#设置开机自启sudosystemctlstartmy_python_app#立即启动服务```###步骤4:验证服务状态```bashsystemctlstatusmy_python_app#查看服务状态journalctl-umy_python_app-f#查看实时日志(按Ctrl+C退出)```###常见问题排查1.**服务启动失败**:使用`journalctl-umy_python_app`检查错误日志,常见问题包括路径错误或依赖缺失。2.**权限问题**:确保`User=`设置的用户有权限访问脚本和相关文件。3.**环境问题**:如果脚本依赖虚拟环境,可在`ExecStart`中指定虚拟环境的Python路径(如引用[5]所示),或使用`Environment`设置环境变量[^5]。```iniExecStart=/home/username/anaconda3/envs/your_env/bin/python/path/to/script.py```>示例:启动Python脚本时指定虚拟环境>```ini>ExecStart=/home/username/miniconda3/envs/myenv/bin/python/opt/apps/main.py>```###替代方案说明虽然引用[2][3][5]提到`crontab`或`rc.local`,但`systemd`是更可靠的开机自启方案,具有完善的日志和进程管理功能[^2][^3][^5]。§§相关问题§§1.`Type=simple`和`Type=forking`有何区别?如何选择?[^3][^4]2.如何为Python服务设置资源限制(如CPU/内存)?3.如何配置服务依赖(如MySQL启动后再启动Python脚本)?4.如果脚本需要图形界面(GUI),该如何配置?5.如何自定义日志输出路径并进行日志切割?[^4]</think> ### 使用 systemctl 配置 Python 脚本开机自启(后台运行) 以下是详细操作步骤(以 Python 脚本 `app.py` 为例): #### 1. 创建服务文件 ```bash sudo vim /etc/systemd/system/python-app.service ``` **配置内容**: ```ini [Unit] Description=Python Application Service # 服务描述 After=network.target # 指定启动顺(网络就绪后) [Service] Type=simple # 后台运行模式[^3][^4] User=your_username # 运行用户 WorkingDirectory=/path/to/script # 脚本所在目录 ExecStart=/usr/bin/python3 /path/to/script/app.py # 启动命令(必须绝对路径) Restart=on-failure # 异常退出时自动重启 RestartSec=30 # 重启间隔 Environment="PYTHONUNBUFFERED=1" # 可选:禁用输出缓冲 [Install] WantedBy=multi-user.target # 开机启动组 ``` #### 2. 关键参数说明 | 参数 | 作用 | 要点 | |------|------|------| | `Type=simple` | 后台运行 | systemd 直接管理进程[^3][^4] | | `ExecStart` | 启动命令 | **必须使用绝对路径**[^1][^4] | | `WorkingDirectory` | 工作目录 | 解决脚本中的相对路径问题 | | `Restart` | 故障恢复 | `on-failure`表示异常退出时重启 | | `Environment` | 环境变量 | 可设置 Python 虚拟环境路径 | #### 3. 激活并启动服务 ```bash # 重载服务配置 sudo systemctl daemon-reload # 设置开机自启 sudo systemctl enable python-app # 立即启动服务 sudo systemctl start python-app ``` #### 4. 验证服务状态 ```bash # 检查运行状态 systemctl status python-app # 查看实时日志 journalctl -u python-app -f ``` #### 5. 虚拟环境配置(如使用) 若需在虚拟环境中运行: ```ini ExecStart=/path/to/venv/bin/python /path/to/script/app.py # 或 Environment="PATH=/path/to/venv/bin:$PATH" ExecStart=python app.py ``` #### 注意事项 1. **路径问题**:所有路径必须为绝对路径[^1][^4] 2. **权限问题**:确保 `User=` 拥有脚本执行权限 3. **日志查看**:启动失败时使用 `journalctl -xe` 排查 4. **环境变量**:复杂环境需在 `[Service]` 添加 `EnvironmentFile=/etc/environment` > 示例:引用[5]的虚拟环境启动方案 > ```ini > ExecStart=/home/user/anaconda3/bin/python /path/to/app.py > ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车尾龙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值