service的创建与使用
基本步骤
- 创建service文件
- 将service文件迁移至
/etc/systemd/system/
- 加载配置
- 调用服务
创建service文件
首先创建一个名为 abcd.service的文件(前面的abcd 这个名字随便改,你的服务是什么就改成什么)
[Unit]
Description= ngrok to ssh #服务的描述信息
After=network.target #其中network.target代表有网路,network-online.target代表一个连通着的网络。
[Service]
Type=simple
User=root
Restart=1 # 如果这个服务意外停止,那么就重启
RestartSec=3s
ExecStart=/home/ziop/bin/ngrok start --config=/etc/ngrok/ngrok.yml ssh #服务的启动命令,要使用绝对地址
ExecStop=/usr/bin/pkill ngrok
[Install]
WantedBy=multi-user.target
注意
- 执行的命令要使用绝对地址
- 使用
/home/ziop/bin/ngrok
而不是直接使用ngrok
- 在写配置的时候把注释全部去掉
type
类型介绍:Type:定义启动时的进程行为。它有以下几种值。
Type=simple
:默认值,执行ExecStart指定的命令,启动主进程
Type=forking
:以 fork 方式从父进程创建子进程,创建后父进程会立即退出
Type=oneshot
:一次性进程,Systemd 会等当前服务退出,再继续往下执行
Type=dbus
:当前服务通过D-Bus启动
Type=notify
:当前服务启动完毕,会通知Systemd,再继续往下执行
Type=idle
:若有其他任务执行完毕,当前服务才会运行
将service文件迁移至 /etc/systemd/system/
注意一定要使用root用户,要不然没有权限
cp abcd.service /etc/systemd/system/
加载配置
这样加载完之后就可以使用,systemctl
工具进行管理该服务了
systemctl daemon-reload
调用服务
#启动abcd
systemctl start abcd
#停止abcd
systemctl stop abcd
#重启abcd
systemctl restart abcd
#如果需要开机启动
systemctl enable abcd
#如果需要取消开机启动
systemctl disable abcd