https://markdowner.net/article/213032749999587328
1. 新建service服务
cd /lib/systemd/system #新建service服务 sudo gedit start_run.service
2. 在新建的service服务文件中键入
[Unit] Description=DownSentry Programme [Service] ExecStart=-/usr/local/sbin/xxx.sh ExecReload=-/usr/local/sbin/xxx.sh Restart=always RestartSec=10000ms [Install] WantedBy=graphical.target
Description:描述,相当于readme.md,内容任意
ExecStart:启动服务时执行的命令
ExecReload:重启服务时执行的命令
Type:启动类型,simple(默认值):ExecStart字段启动的进程为主进程
Restart:on-failure:非正常退出时(退出状态码非0),包括被信号终止和超时,才会重启服务
RestartSec:重启服务前的等待时间
WantedBy:表示该服务所在的 Target,有以下两种
multi-user.target:多用户命令行状态,不需要执行opencv中imshow或者namedWindow等打开图像界面,同时支持多个用户同时登陆并执行进程的状态;
graphical.target:图形用户状态,需要执行opencv中imshow或者namedWindow等打开图像界面的状态
3. 设置开机自启并启动
# 设置开机启动 sudo systemctl enable start_run # 启动服务 sudo systemctl start start_run
4. 验证是否已启动
# 终端执行 sudo systemctl status start_run
5. 服务的修改与重载
sudo systemctl daemon-reload
当新添加 unit 配置文件(这里为开机自启动的 service 文件)后,需要执行 daemon-reload 子命令
有 unit 配置文件发生变化时,也需要执行 daemon-reload 子命令