以 “启动、停止、重启” boa web server为例:
1. 编写系统服务脚本
编写一个符合系统服务规范的脚本。这个脚本通常描述了服务的启动、停止、重启等行为。你可以使用shell、C、C++、Java等语言来编写这个脚本。
# boa_server_run.sh:
#!/bin/bash
set -e
cd /etc/boa
# boa服务
RADIAO_WEB_SERVER="boa"
case "$1" in
start)
#run boa web server
chmod 755 $RADIAO_WEB_SERVER
./$RADIAO_WEB_SERVER
;;
stop)
echo "Stop ${RADIAO_WEB_SERVER}"
killall boa
;;
restart)
$0 stop
$0 start
;;
*)
echo "usage: $0 { start | stop | restart }" >&2
exit 1
;;
esac
exit 0
2. 创建服务单元文件
在/etc/systemd/system/目录下,你需要创建一个服务单元文件(通常以.service为后缀)。这个文件描述了服务的元数据和如何启动、停止、重启该服务。
# boa-server.service:
[Unit]
Description=Radio Gateway Web Server Service
After=default.target
[Service]
Type=forking
Restart=on-failure
ExecStart=/opt/boa_server_run.sh start
ExecStop=/opt/boa_server_run.sh stop
[Install]
WantedBy=default.target
[Unit]部分描述了服务的元数据和启动顺序。[Service]部分定义了如何启动服务,以及服务的重启策略。[Install]部分则描述了服务的安装信息。
3. 添加执行权限
如果你的服务脚本没有执行权限,你需要使用chmod命令为它添加执行权限。
sudo chmod 755 boa-server.service
4. 重新加载配置文件
sudo systemctl daemon-reload
5. 启用并启动服务
使用systemctl命令来启用并启动你的自定义服务了。启用服务意味着在系统启动时自动运行它。你可以使用以下命令来启用和启动服务:
sudo systemctl enable boa-server.service
sudo systemctl start boa-server.service
现在,你的自定义服务应该已经成功添加并启动了。你可以使用systemctl status mycustomservice.service命令来查看服务的状态。
测试重启boa-server.servicce:
sudo systemctl restart boa-server.service