systemd进程管理

  • 通用方式启动nginx
/usr/local/nginx/sbin/nginx  #启动
/usr/local/nginx/sbin/nginx  -s reload  #重启
/usr/local/nginx/sbin/nginx -s   quit   #关闭nginx
  • systemd 管理控制启动模式
cat <<END>    /usr/lib/systemd/system/nginx.service

[Unit]
Description=nginx
After=network.target
  
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true
  
[Install]
WantedBy=multi-user.target
END
  • java环境
vim    /etc/profile

export JAVA_HOME=/usr/java/jdk1.8.0_231-amd64
export JRE_HOME=${
    
    JAVA_HOME}/jre  
export CLASSPATH=.:${
    
    JAVA_HOME}/lib:${
    
    JRE_HOME}/lib  
export JAVA_PATH=${
    
    JAVA_HOME}/bin:${
    
    JRE_HOME}/bin
export  PATH=${
    
    JAVA_HOME}/bin:$PAT
source   /etc/profile
java -version   #检测环境
  • 际启动得例子切换到jar目录下
java -jar decode.jar -Dconfig=/usr/local/abc/application.properties
  • 一个启动脚本
cat <<END> demo.sh

#!/bin/bash
#

source /etc/profile
jarName="abc-web.jar"
workDir="/usr/local/abc"

start(){
    
    
    cd ${
    
    workDir} && java -jar ${
    
    jarName} --spring.profiles.active=prod --server.port=9630 >uams.log 2>&1 &
}

stop(){
    
    
    ps -ef | grep -qP "(?<=-jar)\s+${jarName}" && kill $(ps -ef | grep -P "(?<=-jar)\s+${jarName}" | awk '{print $2}')
}

case $1 in
    start)
        start
        ;;
    stop)
        stop
        ;;
    restart)
        stop
        start
        ;;
esac
END
  • 编写 systemd配置文件
cat <<END>   /usr/lib/systemd/system/abc.service

[Unit]
Description=uams server
Wants=network-online.target
After=network.target

[Service]
Type=forking
WorkingDirectory=/usr/local/abc/
ExecStart=/bin/bash uams.sh start
ExecStop=/bin/bash uams.sh stop
ExecReload=/bin/bash uams.sh restart
Restart=on-failure

[Install]
WantedBy=multi-user.target
END
  • 启动abc服务
systemctl restart abc  #启动
systemctl enable abc   #配置自启
systemctl stop  abc   #停止服务
systemctl status  abc  #检测状态

猜你喜欢

转载自blog.csdn.net/weixin_42562106/article/details/114342567