如何做一个Liunx服务并设置开机自启动

  1. 你要通过 start.sh restart.sh stop.sh 三个脚本来启动,重启关闭你的应用,

  2. 这几个脚本要求是可以运行完成的, 即没有阻塞的状态 比如你可以使用 liunx 的 nohup 命令来时你的应用在后台运行 ,从而不会柱塞你的启动脚本

  3. 你的这几个脚本要保证无论在哪个位置启动, 都可以成功, 不需要强制 cd 到你的脚本目录,或者你的应用home上面,可以使用如下变量来实现,获取你应用的位置


BIN_FOLDER = $(cd "$(dirname "$0")" ; pwd) 解析:
1、取当前运行脚本的所在路径: $0
2、取当前脚本所在路径的父目录: dirname "$0"
3、取返回的父目录的值: $(dirname "$0")
4、cd到返回的父目录: cd "$(dirname "$0")"
5、输出地址: cd "$(dirname "$0")",pwd
6、取输出的地址,并赋值给BIN_FOLDER: BIN_FOLDER = $(cd "$(dirname "$0")" ;pwd)


  1. 首先要写一个 xxx.service 的文件放在
    /usr/lib/systemd/system 目录下
[Unit]
Description=xxx server
After=network.target


[Service]
Type=forking
ExecStart=/data/svc/xxx/opbin/start.sh
ExecReload=/data/svc/xxx/opbin/restart.sh
ExecStop=/data/svc/xxx/opbin/stop.sh
Restart=on-failure
RestartSec=3


[Install]

  1. 写好这个脚本后, 你就可以使用
 systemctl start  xxx 来启动服务
 systemctl stop  xxx 来停止服务
 systemctl restart  xxx 来重启服务
  1. 执行 systemctl enable xxx.service 即可实现开机自启动