Linux使用systemctl设置程序开机自启动


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

原文地址


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM