今天使用vnt给远在南充的家庭服务器搞了个跨与组网,然后想要给本机设置个开机自启动:
zero@Zero-ThundeRobot:/etc/systemd/systemsudo vi vnt-home.service
zero@Zero-ThundeRobot:/etc/systemd/system sudo systemctl daemon-reload
zero@Zero-ThundeRobot:/etc/systemd/system$ sudo systemctl enable vnt-home.service
Created symlink /etc/systemd/system/multi-user.target.wants/vnt-home.service → /etc/systemd/system/vnt-home.service.
vnt-home.service内容如下:
[Unit]
Description=Vnt connect to home
# 确保在网络服务启动后再启动该服务
After=network.target network-online.target
Wants=network-online.target
[Service]
# 这里填写运行服务的用户,根据实际情况修改
User=root
Group=root
# 执行的命令
ExecStart=/home/wuzhao/vnt/vnt-cli -k b8cd63bc-1f53-b270-16da -i 192.168.0.1/24,10.26.0.2 -w c8592197-37ca-b939-dbaf --model chacha20_poly1305
WorkingDirectory=/home/wuzhao/vnt
# 服务失败时自动重启
Restart=always
# 重启间隔时间
RestartSec=5s
[Install]
# 表示该服务会在多用户模式下启动
WantedBy=multi-user.target
有几点需要说明一下:
- 启动的服务依赖网络服务,因此需要使用
After
定义强依赖。 - 由于不一定需要网络已经可以访问互联网,所以,使用
wants
定义弱依赖 - 在
systemd
中定义服务,不要使用nohup来设置进程后台运行,systemd
会自行管理进程的生命周期。 - 不需要使用
./xxxx
来执行命令,只需要配置好WorkingDirectory
后,执行执行文件和命令即可
以上都是关于systemd
的使用,具体的可以查看相关文档,也可以询问AI,这方面问题AI很擅长。