首页 > 自考资讯 > 自考知识

细说linux系统管理,linux管理工具有哪些

头条共创 2024-07-05

Supervisor 是一个进程管理工具,可以在进程中断时自动重新启动进程,也是一个客户端/服务器系统,允许用户在Unix 等操作系统上控制多个进程。

Supervisor是一套用Python开发的流行的进程管理程序。将常规命令行进程转换为后台守护进程,监视进程的状态,并在异常终止时自动重新启动它。

主管通过fork/exec 将这些托管进程作为主管的子进程启动。使用这种方法,您只需要在管理程序的配置文件中包含托管进程的可执行文件的路径。

事实证明,如果子进程挂掉了,父进程可以得到子进程挂掉的准确信息,并且可以选择是否唤醒并报警自己。

Supervisor 还提供为supervisord 或每个子进程设置非root 用户的功能。该用户可以管理相应的进程。

supervisor进程管理服务组成

Supervisor主要由四个核心部分组成:

Supervisord 是Supervisor 服务的主要管理器。运行Supervisor 会启动进程supervisord,该进程负责启动托管进程。

您可以将托管进程作为其自己的子进程启动,并在托管进程崩溃时自动重新启动它。

visorctl 是Supervisor 服务的客户端命令行工具,允许您通过发出停止、启动和重新启动等命令来管理这些子进程。

Web服务器是Supervisor服务的Web可视化界面,允许您通过Web界面查看和控制进程的状态,从而简化学习操作命令。

xml-rpc 接口服务与Web UI 是相同的http 服务器,并提供可用于查询和控制管理程序和其他正在运行的程序的xml-rpc 接口。

supervisor服务运行环境说明

Supervisor 可以在大多数类UNIX 系统上运行,但不能在Windows 系统上运行。

它可以与python2 (2.7) 版本、python3 (3.4) 版本以及更高版本的python 一起使用。

进程管理服务部署

进程管理服务安装过程

安装过程的第一步:安装Python 工具

[root@xiaoQ ~]# yum install -y python-pip 安装过程第二步:安装supervisor程序

[root@xiaoQ ~]# pip installvisor 安装过程第3步:核心检查supervisor是否安装成功。

[root@xiaoQ~]# echo_supervisord_conf--执行上述命令时,可以通过输出

进程管理服务配置信息

信息来检查Supervisor服务是否安装成功。安装Supervisor 进程管理服务程序时,会创建两个主要配置文件。系统内生成的内容:

主进程配置文件:/etc/supervisord.conf

子进程配置文件:/etc/supervisord.d/

分析子进程配置文件信息:

为需要管理的子进程(程序)创建配置文件,并将其放置在/etc/supervisor.d/目录中,扩展名为.ini。

您可以将每个进程的配置文件分开或将相关脚本分组在一起。

可以选择使用与脚本关联的项目名称定义选项组(例如:/etc/supervisord.d/test.conf)。

#项目名称[program:tomcat] #脚本目录目录=/opt/bin#脚本执行命令command=/usr/bin/python /opt/bin/test.py#是否与supervisor启动同时启动,默认Trueautostart=true # 程序退出后不会自动重新启动。默认情况下,它设置子进程挂起后自动重新启动。共有三种:错误的、意外的、真实的。如果为false,则在任何情况下都不会重新启动。如果出现意外,只有在未使用下面的exitcodes=false 定义进程退出代码时才会重新启动。 #这个选项是秒数。子进程启动后,如果当前状态为运行,则认为启动成功。默认值为1startsecs=1 #运行脚本的用户ID user=test #日志输出stderr_logfile=/tmp/blog_stderr.log stdout_logfile=/tmp/blog_stdout.log #将stderr重定向到stdout,默认为falseredirect_stderr=true#stdout日志文件大小,默认50MB stdout_logfile_maxbytes=20MB# stdout 日志文件备份数量stdout_logfile_backups=20 子进程配置示例:

[program:test] directory=/opt/bin command=/opt/bin/testautostart=true autorestart=false stderr_logfile=/tmp/test_stderr.log stdout_logfile=/tmp/test_stdout.log #user=使用supervisor进程管理进行测试010-安装时对于1010 的工具,常用的有几个命令来管理和控制工具。

序列号命令信息功能说明01supervisorctl status 显示所有进程的状态02supervisorctl stop es stop es 服务程序03supervisorctl start es start es 服务程序04supervisorctl restart es restart es 服务程序05supervisorctl update 使用此命令更新配置文件加载新设置后更改06supervisorctl 并重新启动配置中的所有程序

要管理配置中的所有进程,请将es 替换为all。

直接输入supervisorctl即可进入supervisorctl shell交互界面。此时就可以直接使用上面的命令了,不需要使用supervisorctl。

进程管理服务命令使用

在使用supervisor进程管理命令之前,必须先启动supervisord。启动方法如下:

# 使用命令启动服务程序visord -c /etc/supervisord.conf # 使用systemd管理启动服务systemctl startvisord.service -- 启动supervisor并加载默认配置文件systemctl enablevisord.service -- Add # 检查是否服务启动ps -ef|grepvisorroot 12931 1 0 18:16 ? 00:00:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord .confsupervisorctl status --上面命令信息为空,说明没有配置项目的信息,但服务部署过程基本完成。

进程管理服务启动应用

进程管理服务进程

创建主管服务项目

为了演示supervisor服务的能力,可以临时部署nginx服务程序来监控nginx服务进程。

下载并安装nginx 包。

yum install -y nginxsupervisor 服务项目配置

修改上面的supervisord.conf文件,取消文件中最后两行配置信息的注释。即去掉分号信息。

[include]files=visord.d/*.ini -- 指定创建测试服务配置文件时必须加载的程序项目配置文件信息:nginx.ini

[root@xiaoQvisord.d]# cat nginx.ini [program:nginx]directory=/usr/sbin/command=/usr/sbin/nginx -g '守护进程关闭;'autostart=trueautorestart=truestartsecs=3user=rootstderr_logfile=/tmp/nginx_stderr.log stdout_logfile=/tmp/nginx_stdout.logsupervisor 重启服务

当您编写Supervisor管理的进程服务配置文件后,您可以重新启动Supervisor服务来加载编写的服务配置文件。

# 重启supervisor服务程序systemctl restartvisord.service # 检查对应的托管服务程序是否启动[root@docker-servervisord.d]# ps -ef|grep nginxroot 13338 13317 0 00:00:00 nginx: master process /usr/sbin/nginx -g 守护进程关闭;nginx 13339 13338 0 22:12 ? 00:00:00 nginx: 工作进程nginx 13340 13338 0 22:12 ? 00:00:00 nginx33 360 进程nginx x 13341 13338 0 22:12 ? 00:00:00 nginx: 工作进程条件:

8d6ee34421a4451bbf6966a1d9858d85~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720781667&x-signature=PVlZ7aCRwB0p%2FuEPbLM6BFBU0PQ%3D 主管服务维修测试

尝试杀掉nginx服务程序,模拟企业服务异常崩溃,看看supervisor服务能否自动重启nginx程序。

# 尝试模拟杀掉进程[root@docker-servervisord.d]# kill 13338-bash: Kill: (13338) - No such process # 检查nginx服务进程是否可以自动重启[root@docker-servervisord.d] ]# ps -ef|grep nginxroot 13346 13317 0 22:16 ? 00:00:00 nginx: 主进程/usr/sbin/nginx -g 守护进程关闭;nginx 13347 13346 0 223336 000 ?0 0 nginx: 工作进程nginx 13348 13346 0 22:16 00:00:00 nginx: 工作进程nginx 13349 13346 0 22:16 ? 00:00:00 nginx:工作进程nginx 13350 1334 6 0 22:16 ? 00:00:00 nginx:工作进程-- nginx服务根据重启服务进程号信息实现了重启3336- 1010 创建主管服务项目

为了演示实现supervisor服务的能力,可以临时部署Tomcat服务程序来监控Tomcat服务进程。

下载并安装jdk8包。

yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel jdk8 设置并配置环境变量。

#写入环境变量配置文件vim /etc/profile.d/java8.shexport JAVA_HOME=$(dirname $(dirname $(readlink $(readlink $(that javac))))))export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar# 加载环境变量设置信息source /etc/profile.d/java8.sh# 检查环境变量是否有效echo $ JAVA_HOME /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64 或printenv JAVA_HOME/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08 - 2.el7_9.x86_64 检查jdk8包是否安装成功。

[root@xiaoQ ~]# java -versionopenjdk version '1.8.0_352'OpenJDK 运行时环境(build 1.8.0_352-b08)OpenJDK 64-bit Server VM (build 25.352-b08, 混合模式)[root@xiaoQ ~]# javac - 下载并安装版本javac 1.8.0_352 Tomcat程序。

[root@xiaoQ ~]# cd /usr/local/[root@xiaoQ ~]# rz -y-- 将官方下载的Tomcat程序包上传到该目录# 解压Tomcat程序压缩包[ root@xiaoQ local]# tar xf apache-tomcat-8.5.83.tar.gzsupervisor 服务项目配置

修改上面的supervisord.conf文件,取消文件中最后两行配置信息的注释。即去掉分号信息。

[include]files=visord.d/*.ini -- 指定创建测试服务配置文件时必须加载的程序项目配置文件信息:nginx.ini

[root@xiaoQvisord.d]# cat tomcat.ini [program:tomcat]stopasgroup=trueuser=rootenvironment=JAVA_HOME='/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9。 x86_64',JAVA_BIN='/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el7_9.x86_64/bin'--Linux环境下Java的安装位置。忘了它。 在命令行输入echo $JAVA_HOME指定directory=/usr/local/apache-tomcat-8.5.83 --指定Tomcat程序的存储路径信息command=/usr/local/apache-tomcat-83/。 bin/catalina.sh run --指定Tomcat启动脚本的路径信息autostart=trueautorestart=truestartsecs=60user=rootstderr_logfile=/usr/local/apache-tomcat-8.5.83/logs/catalina.errstdout_logfile=/usr/local/apache -tomcat-8.5.83 /logs/catalina.outsupervisor 重新加载服务

当您编写完supervisor管理的进程服务配置文件后,您可以让supervisor服务加载新的服务进程并识别新编写的服务配置文件。

[root@xiaoQ apache-tomcat-8.5.83]#visorctl update tomcat: 添加的进程组通过Web界面查看服务进程的运行状态。

2fb59f5bb0354572bdda58d4bef56055~noop.image?_iz=58558&from=article.pc_detail&lk3s=953192f4&x-expires=1720781667&x-signature=%2BSGncHrpT5jzx%2FFZjuM9Tp6wl4s%3D

版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。

猜你喜欢