使用systemd设置程序的开机自启动的方法。
1. 创建服务文件
在 /etc/systemd/system/
目录下创建一个 .service
文件(需 sudo
权限):
sudo nano /etc/systemd/system/myprogram.service 或者 sudo vi /etc/systemd/system/myprogram.service 或者 sudo gedit /etc/systemd/system/myprogram.service
2. 编写服务配置
将以下模板写入文件(按需修改参数):
[unit] description=my custom program # 服务描述 after=network.target # 指定依赖的启动目标(如网络就绪后启动) [service] execstart=/usr/bin/python3 /path/to/your_script.py # 程序启动命令(绝对路径) workingdirectory=/path/to/working_dir # 可选:程序工作目录 user=myuser # 运行程序的用户(如 root 或其他用户) group=mygroup # 用户组 restart=always # 崩溃后自动重启 restartsec=5 # 重启间隔(秒) [install] wantedby=multi-user.target # 关联到系统启动目标
测试:
[unit] description=test2 after=network.target [service] execstart=/mnt/hgfs/sharedata/demo/2/1 workingdirectory=/mnt/hgfs/sharedata/demo/2 user=root restart=always restartsec=5 [install] wantedby=multi-user.target
3. 启用并启动服务
- 重新加载systemd配置(修改服务文件后必执行):
sudo systemctl daemon-reload
- 启用开机自启动:
sudo systemctl enable myprogram.service
- 立即启动服务(无需重启):
sudo systemctl start myprogram.service
4. 管理服务
- 查看服务状态:
systemctl status myprogram.service
- 停止服务:
sudo systemctl stop myprogram.service
- 禁用开机自启动:
sudo systemctl disable myprogram.service
- 查看日志:
journalctl -u myprogram.service -e # 查看最新日志 journalctl -u myprogram.service -f # 实时追踪日志
测试:
常见问题
路径错误
- 确保
execstart
中的命令使用绝对路径。 - 检查脚本是否有执行权限:
chmod +x /path/to/script
- 确保
权限问题
- 若程序需要特定用户权限,在
[service]
中设置user
和group
。
- 若程序需要特定用户权限,在
依赖未就绪
- 在
[unit]
中使用after=network.target mysql.target
等指定依赖服务。
- 在
到此这篇关于linux使用systemd设置程序开机自启动的具体教程的文章就介绍到这了,更多相关linux systemd程序开机自启动内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论