这篇文章写systemd 的自启动方法
systemd 默认读取 /etc/systemd/system
下的配置文件,该目录下的文件会链接 (软链接)/lib/systemd/system/
下的文件
sudo vim /lib/systemd/system/nattunnel.service
写入以下内容
[Unit]
Description=lzfrp
Documentation=man:systemd-rc-local-generator(8)
ConditionFileIsExecutable=/usr/local/frp/lz/nattunnel
After=network.target[Service]
Type=forking
ExecStart=/usr/local/frp/lz/nattunnel -t 1a06-8c1d-11ee-ac83
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no[Install]
WantedBy=multi-user.target
Alias=rc-local.service
解释
[Unit] # 区块:启动顺序与依赖关系
Description # 服务的描述
Documentation
ConditionFileIsExecutable # 指定了执行的文件, 表示服务要启动的程序(或脚本)
After=network.target # 表示该服务的依赖关系,表示在 network.target 这个 target 后面进行执行。也就是网络启动完成之后,执行 文件。[Service] # 区块:启动行为,如何启动,启动类型。
Type=forking # 后台运行的形式
ExecStart # 启动服务的命令(命令必须写绝对路径)
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no#这一段原文件没有,需要自己添加
[Install] # 区块,定义如何安装这个配置文件,即怎样做到开机启动
WantedBy=multi-user.target # multi-user.target 表示多用户命令行状态
Alias=rc-local.service # 指的是表示该服务所属 target
设置开机自启动
sudo systemctl enable nattunnel
重启之后查看下服务有没有启动
sudo systemctl status nattunnel