如何检查 Solaris 中的服务是否正在运行

如何检查 Solaris 中的服务是否正在运行

具体来说,我想检查 Samba 服务并查看它是否在 Solaris 机器上运行。

对于 Linux,我们可以使用以下命令检查。

service smb status
smbd (pid  8058) is running...

答案1

与 Linux 不同,Solaris 上有一个统一的服务系统。它被称为 SMF。要检查服务是否正在运行,请使用该svcs命令。svcs -a将为您提供系统上配置的所有服务的状态,包括已禁用的服务。

下面是一个示例,其中我已经知道服务名称,在本例中/network/http:apache22为 ,即我的 Apache Web 服务器。使用-l-p开关,我可以获得有关该服务的大量信息,包括它具有哪些依赖项(先决条件)以及它当前在哪些进程 ID 下执行。

$ svcs -lp /network/http:apache22
fmri         svc:/network/http:apache22
name         Apache 2.2 HTTP server
enabled      true
state        online
next_state   none
state_time   Tue Dec 27 09:53:38 2016
logfile      /var/svc/log/network-http:apache22.log
restarter    svc:/system/svc/restarter:default
contract_id  76060
manifest     /lib/svc/manifest/network/http-apache22.xml
manifest     /lib/svc/manifest/network/http-squid.xml
dependency   require_all/error svc:/milestone/network:default (online)
dependency   require_all/none svc:/system/filesystem/local:default (online)
dependency   optional_all/error svc:/system/filesystem/autofs:default (online)
process      2474 /usr/apache2/2.2/bin/httpd -k start
process      13181 /usr/apache2/2.2/bin/httpd -k start
process      13183 /usr/apache2/2.2/bin/httpd -k start
process      13184 /usr/apache2/2.2/bin/httpd -k start
process      13185 /usr/apache2/2.2/bin/httpd -k start
process      13186 /usr/apache2/2.2/bin/httpd -k start
process      13187 /usr/apache2/2.2/bin/httpd -k start

答案2

您可以使用以下命令ps -ef查找 Solaris 计算机上正在运行或未运行的服务:

$ps -ef |grep smbd
root  3214  3886   0 20:49:40 ?           0:03 /usr/local/samba64/sbin/smbd -D
root 15273  3886   0   Nov 07 ?           0:04 /usr/local/samba64/sbin/smbd -D
root 23061  3886   0 11:12:30 ?           0:01 /usr/local/samba64/sbin/smbd -D

相关内容