千家信息网

systemd进程管理工具怎么用

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,systemd进程管理工具怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. systemd介绍systemd是目
千家信息网最后更新 2026年11月03日systemd进程管理工具怎么用

systemd进程管理工具怎么用,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

1. systemd介绍

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

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

2. systemd特点:

1.最新系统都采用systemd管理(RedHat7,CentOS7,Ubuntu15...)

2.CentOS7 支持开机并行启动服务,显著提高开机启动效率

3.CentOS7关机只关闭正在运行的服务,而CentOS6,全部都关闭一次。

4.CentOS7服务的启动与停止不再使用脚本进行管理,也就是/etc/init.d下不在有脚本。

5.CentOS7使用systemd解决原有模式缺陷,比如原有service不会关闭程序产生的子进程。

3. systemd语法:

systemctl [command]      [unit](配置的应用名称)  command可选项  · start:启动指定的unit          systemctl start nginx  · stop:关闭指定的unit           systemctl stop nginx  · restart:重启指定unit          systemctl restart nginx  · reload:重载指定unit           systemctl reload nginx  · enable:系统开机时自动启动指定unit,前提是配置文件中有相关配置 systemctl enable nginx  · disable:开机时不自动运行指定unit   systemctl disable nginx  · status:查看指定unit当前运行状态 systemctl status nginx

4. systemd配置文件说明:

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

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

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

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

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

5. systemd相关文件:

systemd控制的相关文件CentOS6CentOS7
服务启动的脚本启动路径/etc/init.d/usr/lib/systemd/system
开机自启服务存放路径/etc/rcN.d/etc/systemd/system/multi-user.target.wants/
默认运行级别配置文件/etc/inittab/etc/systemd/system/default.target

实战一 源码编译安装nginx 实现systemd管理控制

安装nginx编译环境

yum  -y install gcc gcc-c++    openssl-devel pcre-devel gd-devel  iproute net-tools telnet wget curl  wget http://nginx.org/download/nginx-1.15.5.tar.gz  tar zxf nginx-1.15.5.tar.gz &&  cd nginx-1.15.5  ./configure --prefix=/usr/local/nginx \      --with-http_ssl_module \      --with-http_stub_status_module   make -j 4 && make install

通用方式启动nginx

/usr/local/nginx/sbin/nginx  #启动  /usr/local/nginx/sbin/nginx  -s reload  #重启  /usr/local/nginx/sbin/nginx -s   quit   #关闭nginx

systemd 管理控制启动模式

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

参数详解

systemctl restart nginx  systemctl enable  nginx  systemctl stop  nginx

如图所示实现了systemd 管理控制nginx服务

实战二 二进制安装tomcat 实现systemd管理控制

安装java环境,我已经将安装包打包到我得服务器上,也可以去官网下载

wget  120.78.77.38/file/jdk-8u231-linux-x64.rpm  wget  120.78.77.38/file/apache-tomcat-9.0.27.tar.gz

rpm -ivh  jdk-8u231-linux-x64.rpm    #rpm直接安装jdk

配置环境变量

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:$PATH
source   /etc/profile  java -version   #检测环境

安装tomcat

tar  -xf  apache-tomcat-9.0.27    mv  apache-tomcat-9.0.27  /usr/local/tomcat

启动tomcat

sh    /usr/local/tomcat/bin/startup.sh   #启动  sh   /usr/local/tomcat/bin/shutdown.sh #关闭

systemd管理控制启动

vim      /usr/lib/systemd/system/tomcat.service  [Unit]  Description=tomcat server  Wants=network-online.target  After=network.target  [Service]  Type=forking  Environment="JAVA_HOME=/usr/java/jdk1.8.0_231-amd64"  Environment="PATH=$JAVA_HOME/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin"  Environment="CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar"  ExecStart=/usr/local/tomcat/bin/startup.sh  ExecStop=/usr/local/tomcat/bin/shutdown.sh  Restart=on-failure  [Install]  WantedBy=multi-user.target
systemctl restart tomcat  #启动  systemctl enable tomcat   #配置自启  systemctl stop  tomcat   #停止服务  systemctl status  tomcat  #检测状态

以上两个实战nginx和tomcat程序中自带了启动停止脚本,如果启动得程序没有自带脚本则需要自己编写一个类似得启动停止脚本

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

实际得项目中会有一些jar程序需要启动 如果手动启动则需要输入一大串命令 停止则需要杀掉进程来停止,很麻烦

举一个实际启动得例子切换到jar目录下

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

启动abc服务

systemctl restart abc  #启动  systemctl enable abc   #配置自启  systemctl stop  abc   #停止服务  systemctl status  abc  #检测状态

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

管理 配置 服务 文件 脚本 系统 控制 进程 命令 程序 运行 实战 环境 目录 工具 管理工具 状态 检测 两个 也就是 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 国智互联网科技 互联网最新的科技 腾讯阿里互联网科技 与互联网科技公司 科技创新互联网企业 掌上梦互联网科技 互联网科技公司名称 汉立互联网科技有限公司联系电话 互联网金融科技公司干啥的 语蝶互联网科技有限公司 注册互联网科技公司经营范围大全 洛阳昕诺飞互联网科技有限公司 工业互联网展湾科技股份有限公司 上海科技产业互联网平台 高科技互联网套路 元气玛特互联网科技公司是外包吗 半导体行业属于互联网高科技类吗 云鲸互联网络科技有限公司 广东猫王互联网科技有限公司电话 中国主要互联网科技公司 科技互联网 新华互联网科技 金融科技还是互联网 互联网 卓越科技 港股科技和互联网 华夏互联网科技业 速维有品互联网信息科技(苏州)有限公司 想开互联网科技公司怎么样 利用互联网等科技手段 前海云享互联网科技
0