linux把程序/脚本安装成服务

2020-06-04

进入/etc/systemd/system新建一个文件

cd /etc/systemd/system
vi serviceName.service

写入下面的命令

[Unit]
Description=nginx-server
After=network.target

[Service]
Type=forking
PIDFile=/data/nginx/logs/nginx.pid
ExecStart=/data/nginx/sbin/nginx -c /data/nginx/conf/nginx.conf
ExecReload=/data/nginx/sbin/nginx -s reload
ExecStop=/data/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
[Unit]
Description=jiemi
After=network.target

[Service]
Type=forking
ExecStart=/data/jiemi/jiemistart.sh
ExecStop=/data/jiemi/shutdown.sh
PrivateTmp=true

[Install]
WantedBy=multi-user.target

Type=forking是后台运行的形式,PIDFile为存放PID的文件路径,ExecStart为服务的具体运行命令,ExecReload为重启命令,ExecStop为停止命令,PrivateTmp=True表示给服务分配独立的临时空间,注意:[Service]部分的启动、重启、停止命令全部要求使用绝对路径,使用相对路径则会报错!

启动服务
systemctl start serviceName
查看服务状态
systemctl status serviceName
停止服务
systemctl stop serviceName
重启服务
systemctl restart serviceName
在不重启服务的情况下,重新载入配置文件,让设置生效
systemctl reload serviceName
重新加载服务
systemctl daemon-reload
设置开机自启动
systemctl enable serviceName
取消开机自启动
systemctl disable serviceName
# 获取脚本所在目录,当脚本注册为服务时需要使用绝对路径,否则服务将无法访问文件
TJAR_PATH=`dirname $(readlink -f ${BASH_SOURCE[0]})`
echo "$TJAR_PATH"/123.jar

# 获取程序的pid将其关闭
kill -15 `ps -ef|grep smtools.jar|awk 'NR==1{print $2}'`

文章来源于:https://blog.csdn.net/zxcv1234zx12/article/details/86305004

{/if}