1 说明
设置开机自启动,需要用到systemctl工具。
systemctl是一个systemd工具,主要负责控制systemd系统和服务管理器。
systemd是一个系统管理守护进程、工具和库的集合,用于取代System V初始进程。Systemd的功能是用于集中管理和配置类UNIX系统。
在Linux生态系统中,Systemd被部署到了大多数的标准Linux发行版中,只有为数不多的几个发行版尚未部署。
2 准备
os:redhat7.0
systemctl –version : systemd 208
weblogic version:12
3 将程序设置成系统服务
3.1 编写系统服务文件
# vi /etc/systemd/system/myapp.service
# note 如果/etc/systemd/system/myapp.service有过修改,需要进行更新,执行下面这个命令
# systemctl daemon-reload
# note 查看服务是否被正确识别
# systemctl list-unit-files|grep myapp
[Unit]
# note 服务描述,写有意义的内容,便于识别
Description=myapp service
[Service]
Type=simple
# note 设置应用的工作目录
WorkingDirectory=/myapp_path
ExecStart=/myapp_path/startMyApp.sh
ExecStop=/bin/kill -s TERM $MAINPID
[Install]
WantedBy=multi-user.target
3.2 查看系统服务文件是否被识别
systemctl list-unit-files|grep myapp
--------------------------
myapp.service disabled
4 编写程序启动脚本
# vi /myapp_path/startMyApp.sh
----------------------------------------------------
# note !/bin/sh
# note上面这行很重要,会报203错误
# note 最好先cd到程序目录
cd /myapp_path
#使用java的绝对路径。如果找不到java可执行程序,也会报203错误
/usr/java/jdk1.8/bin/java -jar myapp.jar
启动脚本设置执行权限
chmod +x myapp.sh
5 测试系统服务
5.1 启动系统服务
systemctl start myapp.service
5.2 停止系统服务
systemctl stop myapp.service -l
5.3 查看系统服务是否成功启动
systemctl status myapp.service -l
5.4 可能碰到的203错误
systemctl enable myapp.service
systemctl list-unit-files|grep myapp
--------------------------
myapp.service enabled
反向命令:
systemctl disable myapp.service
systemctl list-unit-files|grep myapp
--------------------------
myapp.service disabled
6 查看服务的控制台日志
相当于tail -f。
journalctl -flu myapp.service