首先在/usr/lib/systemd/system 下编写自己的系统服务。
vi xxxxx-xxxxx.service
[Unit]
Description= xxxxx server
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/home/jocelyn/bin/startXXX.sh
ExecStop=/home/jocelyn/bin/stopXXX.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target
具体含义请参考 http://blog.csdn.net/ch21st/article/details/51383877
服务编写好之后使用systemctl start xxxxx-xxxxx.service
让服务可以开机自启
可以采用 systemctl start xxxxx-xxxxx.service
systemctl stop xxxxx-xxxxx.service
测试服务是否能正确执行。
报错可以用 systemctl status xxxxx-xxxxx.service
查看服务状态。
Q&A
Q1: Exec format error
A1: 在指向的启动脚本中添加 #!/bin/bash 一个bash 脚本的开始标记,必须以 #!/bin/bash开头,系统执行该脚本时,以/bin/bash 作为解释器。
Q2: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
A2: 因为root用户没有指定JAVA_HOME的环境变量,所以在所有的启动脚本前,指定JAVA_HOME的路径即可。
#!/bin/sh
JAVA_HOME=/opt/jdks/java-1.7.0_80-x64
网友评论