您现在的位置是:首页 > 知识问答 > Service怎么写配置文件

Service怎么写配置文件

知识问答作者:U大使日期:2021-01-24点击:157

Service怎么写配置文件,控制服务启动关闭,开机自启

#新建systemd配置文件,将以下代码一起复制到SSH运行cat > /etc/systemd/system/<service-name>.service <<EOF[Unit]Description=<service-name>After=network.target[Service]Type=simpleWorkingDirectory=<工作目录>ExecStart=<启动命令>Restart=on-failure[Install]WantedBy=multi-user.targetEOF

启动、关闭服务以及添加自启动

# 启动服务systemctl start <service-name># 关闭服务systemctl stop <service-name># 添加启动项systemctl enable <service-name>

配置开机自启动脚本,文章提供两个方法:分别利用/etc/init.d目录和/etc/rc.d/rc.local文件

方法1:将可执行的开机启动脚本加入到/etc/init.d/目录下,并利用chkconfig配置开机自启动,重启生效

1)、切换到/etc/init.d/

[root@www ~]# cd /etc/init.d/

2)、编辑开机启动服务脚本 vim xxx.sh

[root@www init.d]# vim starttomcat.sh

!/bin/sh

配置Tomcat开机自启并使用service命令管理

chkconfig: 2345 70 30

进程: starttomcat.sh

. /etc/profile.d/java.sh;

. /etc/profile.d/tomcat.sh;

catalina.sh start;

命令间用;隔开,每个命令都会执行,但是各个命令的执行给果(不论成功与否),都不会影响其它命令的执行。

命令间用&&(与)隔开:当且仅当前一个命令执行成功时后一个命令才会被执行,保证所有的命令执行完毕后,执行过程都是成功的。

命令间用||(或)隔开:当且仅当前一个命令执行失败时后一个命令才会被执行,保证成功执行一条命令就停止执行。

其中java.sh和tomcat.sh为环境变量配置
[root@www ~]# cat /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/jdk8
export PATH=$JAVA_HOME/bin:$PATH
[root@www ~]# cat /etc/profile.d/tomcat.sh
export CATALINA_HOME=/usr/local/tomcat
export PATH=$CATALINA_HOME/bin:$PATH

3)、给脚本加上可执行权限

[root@www init.d]# chmod +x starttomcat.sh

4)、将脚本设置为自启动

[root@www init.d]# chkconfig --add starttomcat.sh

5)、重启验证是否开机自启:curl页面或ps进程

[root@www init.d]# reboot

[root@www ~]# curl http://192.168.88.131:8080/app1/

[root@www logs]# ps -ef |grep tomcat|grep -v grep

root 2397 1 1 16:29 ? 00:00:05 /usr/local/jdk8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

[root@www logs]# chkconfig --list starttomcat.sh

starttomcat.sh 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

2345是指脚本的运行级别,即在2345这4种模式下都可以运行,234都是文本界面,5就是图形界面X

方法2:利用开机自启动文件/etc/rc.d/rc.local,将可执行脚本路径加入该文件中,开机自动执行

1)、自行定义开机自启动脚本存放路径,并创建脚本

[root@www ~]# mv /etc/init.d/starttomcat.sh /home/fieldyang/

2)、 给脚本加上可执行权限

[root@www ~]# chmod +x starttomcat.sh

3)、将脚本路径加入/etc/rc.d/rc.local文件中,如下的“/home/fieldyang/starttomcat.sh”

[root@www fieldyang]# cd /etc/rc.d/

[root@www rc.d]# vim rc.local

!/bin/sh

This script will be executed after all the other init scripts.

You can put your own initialization stuff in here if you don't

want to do the full Sys V style init stuff.

touch /var/lock/subsys/local

/home/fieldyang/starttomcat.sh

4)、重启测试服务是否自启动

[root@www init.d]# reboot

[root@www ~]# curl http://192.168.88.131:8080/app1/ 访问Tomcat服务页面

[root@www ~]# ps -ef |grep tomcat|grep -v grep

root 2592 1 2 16:50 ? 00:00:04 /usr/local/jdk8/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start

注意:在centos7中,/etc/rc.d/rc.local文件的权限被降低了,执行下面的命令可以文件标记为可执行的文件:chmod +x /etc/rc.d/rc.local

生产案例:一个shell启动脚本,在centos下配置可以通过service命令管理的服务

以下是一个实现Tomcat启停的简单脚本,配置实现tomcat开机自启动,并能使用service命令管理,步骤如下:

方便测试状态,curl http://192.168.88.131:8080/app1/会返回一个测试页面

编辑启动和管理脚本

[root@www ~]# vim /etc/init.d/tomcatd

!/bin/sh

配置Tomcat开机自启并使用service命令管理

chkconfig: 2345 70 30

服务: tomcatd

if [ -f /etc/init.d/functions ]; then

. /etc/init.d/functions

elif [ -f /etc/rc.d/init.d/functions ]; then

. /etc/rc.d/init.d/functions

else

echo -e "/atomcat: unable to locate functions lib. Cannot continue."

exit -1

fi

. /etc/profile.d/java.sh;

. /etc/profile.d/tomcat.sh;

注意,此处必须读取配置,否则Tomcat自启动后仍旧无法启动web程序

RETVAL=$?

case "$1" in

start)

   . /etc/profile.d/java.sh;

. /etc/profile.d/tomcat.sh;

   catalina.sh start;    ;;

stop)

  . /etc/profile.d/java.sh;  . /etc/profile.d/tomcat.sh;   catalina.sh stop;   echo "Tomcat Stopped!"   ;;

status)

  curl http://192.168.88.131:8080/app1/ >/dev/null 2>&1  if [ $? = 0 ]; then      echo "Service Tomcat is Running....."  else        echo "Service Tomcat is Stopped! Please Enter ‘service tomcatd start' To Start."   fi   ;;

restart)

   echo "Restart Tomcat Now ..."   catalina.sh stop >/dev/null 2>&1;   echo "Tomcat is Stopping....."   sleep 1   echo "Stop Tomcat OK !"   echo "Start Tomcat Now ..."   . /etc/profile.d/java.sh;   . /etc/profile.d/tomcat.sh;   catalina.sh start;   ;;

configtest)

   . /etc/profile.d/java.sh;  . /etc/profile.d/tomcat.sh;   catalina.sh configtest;    ;;

*)

   echo "Usage: service tomcatd {start|stop|status|restart|configtest}"  exit 1

esac

exit $RETVAL

添加脚本执行权限

[root@www init.d]# chmod +x tomcatd

挂载:将这个shell文件的link连到/etc/rc2.d/目录下:

linux的/etc/rcX.d/目录中的数字代表开机启动时不同的run level,也就是启动的顺序,可能在目录中的程序启动时Tomcat所需要的一些库尚未被加载,使用ln命令将tomcatd的链接链过去。

rcX.d目录下的链接有自己的命名规则,因需要不同分别以S或K开头,之后的数字代表它们的启动顺序,详细看各自目录下的Readme文件。

[root@www init.d]# ln -s /etc/init.d/tomcatd /etc/rc2.d/S16tomcatd

[root@www init.d]# cd -

/etc/rc2.d

[root@www rc2.d]# ls -lrt

使用chkconfig命令设置开机自启动

[root@www init.d]# chkconfig tomcatd on

[root@www init.d]# chkconfig --list tomcatd

tomcatd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

测试:重启看是否自动重启服务

[root@www init.d]# reboot

[root@www ~]# service tomcatd status

Service Tomcat is Running.....

[root@www ~]# service tomcatd stop

Using CATALINA_BASE: /usr/local/tomcat

Using CATALINA_HOME: /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME: /usr/local/jdk8

Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat Stopped!

[root@www ~]# service tomcatd status

Service Tomcat is Stopped! Please Enter ‘service tomcatd start' To Start.

[root@www ~]# service tomcatd start

Using CATALINA_BASE: /usr/local/tomcat

Using CATALINA_HOME: /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME: /usr/local/jdk8

Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

[root@www ~]# service tomcatd status

Service Tomcat is Running.....

[root@www ~]# service tomcatd restart

Restart Tomcat Now ...

Tomcat is Stopping.....

Stop Tomcat OK !

Start Tomcat Now ...

Using CATALINA_BASE: /usr/local/tomcat

Using CATALINA_HOME: /usr/local/tomcat

Using CATALINA_TMPDIR: /usr/local/tomcat/temp

Using JRE_HOME: /usr/local/jdk8

Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar

Tomcat started.

[root@www ~]# service tomcatd status

Service Tomcat is Running.....

下一篇       上一篇