zoukankan      html  css  js  c++  java
  • Systemd 、systemctl进程管理工具

    一、systemctl是Systemd 的主命令,可用于管理系统。

    列出所有已经加载的systemd units

    systemctl
    systemctl | grep docker.service
    

    列出所有service

    systemctl list-units --type=service
    systemctl --type=service
    

    列出所有active状态(运行或退出)的服务

    systemctl list-units --type=service --state=active
    

    列出所有正在运行的服务

    systemctl list-units --type=service --state=running
    

    列出所有正在运行或failed状态的服务

    systemctl list-units --type service --state running,failed
    

    列出所有enabled状态的服务

    systemctl list-unit-files --state=enabled
    systemctl list-unit-files    ##enabled和disabled
    

    查看内部命令

    #  enable -a
    enable .
    enable :
    enable [
    enable alias
    enable bg
    enable bind
    enable break
    enable builtin
    enable caller
    enable cd
    enable command
    enable compgen
    enable complete
    enable compopt
    enable continue
    enable declare
    enable dirs
    enable disown
    enable echo
    enable enable
    enable eval
    enable exec
    enable exit
    enable export
    enable false
    enable fc
    enable fg
    enable getopts
    enable hash
    enable help
    enable history
    enable jobs
    enable kill
    enable let
    enable local
    enable logout
    enable mapfile
    enable popd
    enable printf
    enable pushd
    enable pwd
    enable read
    enable readarray
    enable readonly
    enable return
    enable set
    enable shift
    enable shopt
    enable source
    enable suspend
    enable test
    enable times
    enable trap
    enable true
    enable type
    enable typeset
    enable ulimit
    enable umask
    enable unalias
    enable unset
    enable wait
    

    二、systemd

    systemd是目前centos系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7开始也由systemd取代了init作为默认的系统进程管理工具。

    systemd所管理的所有系统资源都称作Unit,通过systemd命令集可以方便的对这些Unit进行管理。比如systemctl、hostnamectl、timedatectl、localctl等命令,这些命令虽然改写了init时代用户的命令使用习惯(不再使用chkconfig、service等命令),但确实也提供了很大的便捷性。

    systemd配置文件

    • 每一个Unit都需要有一个配置文件用于告知systemd对于服务的管理方式

    • 配置文件存放于/usr/lib/systemd/system/,设置开机启动后会在/etc/systemd/system目录建立软链接文件

    • 每个Unit的配置文件配置默认后缀名为.service

    • 在/usr/lib/systemd/system/目录中分为system和user两个目录,一般将开机不登陆就能运行的程序存在系统服务里,也就是/usr/lib/systemd/system

    • 配置文件使用方括号分成了多个部分,并且区分大小写

    部署jar程序 实现systemd管理控制

    java -jar decode.jar -Dconfig=/usr/local/abc/application.properties
    

    代码

    vim  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
    

    编写systemd配置文件

    vim  /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
    

  • 相关阅读:
    微信点餐系统(六)-买家端订单(上)
    微信点餐系统(五)-买家端商品
    微信点餐系统(四)-买家端类目
    微信点餐系统(三)-开发环境配置
    微信点餐系统(二)-项目设计
    微信点餐系统(一)-系统简介
    spring学习(02)之配置文件没有提示问题
    spring学习(01)之IOC
    struts2 中的 addActionError 、addFieldError、addActionMessage的方法【转】
    在一个JSP页面中包含另一个JSP页面的三种方式
  • 原文地址:https://www.cnblogs.com/zjz20/p/14386037.html
Copyright © 2011-2022 走看看