自启动服务

以前低版本linux会使用/etc/rc.local进行设置自启动,将对应的启动程序放置到该脚本下,即可实现对应程序或者脚本的自动启动。高版本Linux开始推荐使用systemd进行管理服务的启动停止。虽然rc.local仍然得以保留,最好还是要使用服务的方式进行启动管理。

我们以tomcat为例进行设置tomcat的启动服务编写。

Tomcat启动服务编写

我们将tomcat解压包放到/home/jack/soft/tomcat/apache-tomcat-9.0.113目录下,同时修改tomcat的./bin/setenv.sh脚本,如果该脚本没有则需要自己创建,tomcat的startup.sh会引用改脚本中的命令。下面是setenv.sh脚本的内容。

1
2
3
export JAVA_OPTS="-server -Xms4g -Xss4g"
export JAVA_HOME=/usr/local/java/jdk1.8.0_301
#设定tomcat的内存信息,标注java运行环境变量

编辑完成之后需要给seten.sh设定执行权限

1
$ sudo chmod u+x setenv.sh

在/etc/systemd/system/目录下创建tomcat9.service,并编写对应脚本信息

1
2
$ sudo vim /etc/systemd/system/tomcat9.service
$ :wq
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[Unit]
Description=Apache Tomcat 9 Service
After=network.target

[Service]
Type=forking
User=jack
Group=jack

ExecStart=/home/jack/soft/apache-tomcat-9.0.113/bin/startup.sh
ExecStop=/home/jack/soft/apache-tomcat-9.0.113/bin/shutdown.sh
Restart=on-failure
RetartSec=10

[Install]
WantedBy=multi-user.target

必须要让tomcat文件夹目录输入jack:jack

1
$ sudo chown jack:jack /home/jack/soft/apache-tomcat-9.0.113

启动服务

1
2
$ sudo systemctl enable tomcat9.service
$ sudo systemctl start tomcat9

这样就不用每次启动虚拟机之后,手动启动各种程序和服务了。