Ubuntu 21.04 设置ai服务开机自启动的两种方法
- [方法1 /lib/systemd/system](#方法1 /lib/systemd/system)
- [方法2 /etc/systemd/system](#方法2 /etc/systemd/system)
方法1 /lib/systemd/system
1.1.修改/lib/systemd/system/rc-local.service
,如果没有需要新建,添加[Install]
的内容,文件内容为
bash
[Unit]
Description=/etc/rc.local Compatibility
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/etc/rc.local
After=network.target
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
iGuessMainPID=no
[Install]
WantedBy=multi-user.target
Alias=rc-local.service
1.2.创建自启动脚本
bash
$ sudo vim /etc/rc.local
bash
1 #!/bin/sh
2 #/ai/ai_vehicle_peccancy/start.sh
3 cd /ai/ai_vehicle_peccancy/
4 nohup ./ai_vehicle_peccancy >/dev/null 2>&1 &
5 exit 0
1.3.给权限
bash
$ sudo chmod 755 /etc/rc.local
1.4.启动服务
bash
sudo systemctl enable rc-local
sudo systemctl start rc-local.service
sudo systemctl status rc-local.service
1.5.重启测试
bash
sudo reboot
参考文章:
Ubuntu22.04开机自启脚本
方法2 /etc/systemd/system
2.1 新建ai-object.service
文件,文件内容为
bash
[Unit]
Description=demo
After=network.target nginx.service
[Service]
WorkingDirectory=/home/ubuntu/AIServer/object
Type=forking
ExecStart=/home/ubuntu/AIServer/object/start.sh
ExecStop=/home/ubuntu/AIServer/object/stop.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
其中start.sh为目标程序的启动脚本,stop.sh为目标程序的关闭脚本。
2.2 创建install_service.sh
脚本,内容为
bash
#! /bin/bash
# program : start program
chmod a+x start.sh
chmod a+x stop.sh
chmod a+x AIServer-object
cp -n ai-object.service /etc/systemd/system
chmod a+x /etc/systemd/system/ai-object.service
systemctl enable ai-object.service
systemctl start ai-object.service
echo `systemctl status ai-object.service`
2.3 启动服务
运行install_service.sh
脚本,完成服务安装和自启动配置。
bash
$ ./install_service.sh
注意:install_service.sh脚本只需要在安装时执行一次即可,后续服务器开机后会自动启动AI服务。
启动成功时控制台会输出如下信息:
bash
● ai-objtect.service - demo
Loaded: loaded (/etc/systemd/system/ai-objtect.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-08-19 10:43:39 CST; 4min 39s ago
Process: 11563 ExecStart=/home/ubuntu/AIServer/object/start.sh (code=exited, status=0/SUCCESS)
Main PID: 11573 (AIServer)
Tasks: 21 (limit: 18744)
Memory: 10.6M
CGroup: /system.slice/ai-objtect.service
└─11573 ./AIServer
8月 19 10:43:39 ubuntu-08 systemd[1]: Starting demo...
8月 19 10:43:39 ubuntu-08 start.sh[11563]: [2022-08-19 10:43:39][INFO] AIServer start
8月 19 10:43:39 ubuntu-08 systemd[1]: Started demo.