如何在Linux中测试服务?

如何在Linux中测试服务?,linux,testing,dependencies,Linux,Testing,Dependencies,我被指派了一个项目来编写某种脚本,该脚本将在Linux服务器实现上执行健全性检查,以确定在将源代码部署到它之前,它是否安装了大量依赖项。我需要检查是否存在PHP、Nginx、PostgreSQL等应用程序,并可能确认这些应用程序的版本号。要使给定的源代码能够在服务器上正常运行,这些依赖关系是必需的 问题是,我不确定如何处理这个问题,因为我在使用Linux时很新奇。我对此做了一些研究,认为解决方案可能是结合使用诸如“chkconfig--list”之类的命令梳理正在运行的服务列表,并使用诸如“ph

我被指派了一个项目来编写某种脚本,该脚本将在Linux服务器实现上执行健全性检查,以确定在将源代码部署到它之前,它是否安装了大量依赖项。我需要检查是否存在PHP、Nginx、PostgreSQL等应用程序,并可能确认这些应用程序的版本号。要使给定的源代码能够在服务器上正常运行,这些依赖关系是必需的

问题是,我不确定如何处理这个问题,因为我在使用Linux时很新奇。我对此做了一些研究,认为解决方案可能是结合使用诸如“chkconfig--list”之类的命令梳理正在运行的服务列表,并使用诸如“php-v”之类的命令ping单个应用程序,然后断言这些命令的结果与我正在寻找的结果相同

对不起,如果这毫无意义,我真的是个新手。然后我想我可以将这些“测试”放在shell脚本中,或者在服务器上需要执行测试时可以运行的东西中。我将聚合断言的真/假结果,并根据这些结果输出是否通过了健全性检查。任何指导都将不胜感激

多谢各位


修订:我还想用Python来代替shell脚本。有人知道有什么好的Python库允许查询系统服务吗?

如果您的目标系统由理性的人管理,软件将由打包系统管理。在Redhat、Fedora、CentOS或SUSE系统上,将使用RPM。在任何源于Debian的系统上,它都是合适的

因此,您的脚本可以检查这两个打包系统中的一个。尽管需要注意的是,您可以在Debian系统上安装RPM,因此RPM的存在并不能告诉您系统类型。包的名称也可以不同。例如,SUSE将为事物命名为与Redhat稍有不同的名称

因此,使用
uname
和/或
/etc/issue
确定系统类型。然后,您可以使用
rpm-qapache
dpkg query-s postgresql
查找特定的包版本


如果系统由疯子管理,软件将手工构建并安装在/opt或/usr/local或/home/nginx中,版本未知。那么祝你好运。

谢谢你,赞,这正是我需要的。事实上,我正在使用Red Hat,我决定使用psutil Python库来检查我需要的各种服务。