具体来说,我想检查 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