Linux

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > Linux > Linux Systemd程序开机自启动

Linux使用Systemd设置程序开机自启动的具体教程

作者:嵌入式学习和实践

Systemd是Linux系统中的初始化系统,旨在提高启动速度和效率,它通过并行启动服务、按需加载、cgroups管理进程、自动挂载管理等方式优化启动过程,本文给大家介绍了Linux系统中使用Systemd设置程序开机自启动教程,需要的朋友可以参考下

使用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. 启用并启动服务

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  # 实时追踪日志

测试:

常见问题

  1. 路径错误

    • 确保 ExecStart 中的命令使用绝对路径。
    • 检查脚本是否有执行权限:chmod +x /path/to/script
  2. 权限问题

    • 若程序需要特定用户权限,在 [Service] 中设置 User 和 Group
  3. 依赖未就绪

    • 在 [Unit] 中使用 After=network.target mysql.target 等指定依赖服务。

到此这篇关于Linux使用Systemd设置程序开机自启动的具体教程的文章就介绍到这了,更多相关Linux Systemd程序开机自启动内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文