Ubuntu 21.04 设置ai服务开机自启动的两种方法

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.

参考文章:
Linux下使用systemctl 开机自动启动项目

相关推荐
桜見11 小时前
ubuntu上pylon无法启动
linux·运维·ubuntu
lzb_kkk12 小时前
【C++项目】Rpc通信框架设计
linux·网络·c++·网络协议·ubuntu·rpc
engchina12 小时前
解决 WSL Ubuntu 中 /etc/resolv.conf 自动重置问题
linux·运维·ubuntu·wsl·resolv.conf
HOOLOO13 小时前
Ubuntu下创建sftp帐号
linux·运维·ubuntu
orange....13 小时前
ubuntu 创建交换分区 或者扩容交换分区
linux·ubuntu
王念博客13 小时前
Ubuntu 24或最新Ubuntu 安装 英伟达显卡驱动
linux·运维·服务器·ubuntu
IT_张三1 天前
Ubuntu Linux运维实战指南4_文件系统基础知识
linux·运维·ubuntu
Arms2061 天前
Ubuntu学习备忘
ubuntu
太过分少女2 天前
ubuntu24 springboot jar设置宕机重启
运维·ubuntu
不良人天码星2 天前
Ubuntu 的RabbitMQ安装
分布式·ubuntu·rabbitmq