Skip to content

Instantly share code, notes, and snippets.

@bahamas10
Created January 14, 2020 07:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bahamas10/b1d9a487d53a7379600ed463c709b9ad to your computer and use it in GitHub Desktop.
Save bahamas10/b1d9a487d53a7379600ed463c709b9ad to your computer and use it in GitHub Desktop.
illumo smf svcs for processes
#!/usr/bin/env bash
#
# svcs wrapper for services with processes
#
# Author: Dave Eddy <dave@daveeddy.com>
# Date: January 12, 2020
# License: MIT
red=$(tput setaf 1 2>/dev/null)
green=$(tput setaf 2 2>/dev/null)
magenta=$(tput setaf 5 2>/dev/null)
cyan=$(tput setaf 6 2>/dev/null)
gray=$(tput setaf 8 2>/dev/null)
reset=$(tput sgr0 2>/dev/null)
# simple awk version... no color but it's fast
svcs -pHo fmri | awk '
! $2 {
svc = $1
}
$2 && svc {
print svc
svc = ""
}
$2 {
printf(" %d %s\n", $2, $3)
}' >/dev/null
# bash version, slower but has color and stuff
hasprinted='false'
fmri=
while read -r one two three _; do
if [[ -z $two ]]; then
fmri=$one
continue
fi
if [[ -n $fmri ]]; then
$hasprinted && echo
dirname=${fmri%/*}
basename=${fmri##*/}
IFS=: read -r svcname instance <<< "$basename"
echo "${gray}${dirname}/${reset}${svcname}${gray}:${instance}${reset}"
fmri=
hasprinted='true'
fi
pid=$two
cmd=$three
echo " ${magenta}${pid}${reset} ${green}${cmd}${reset}"
done < <(svcs -pHo fmri "$@")
# ./ps-svcs
svc:/application/nrpe:default
6480 nrpe
svc:/application/apcupsd:default
32701 apcupsd
svc:/system/vtdaemon:default
5924 vtdaemon
svc:/system/utmp:default
5689 utmpd
svc:/system/smartdc/vminfod:default
5810 ctrun
svc:/system/smartdc/vmadmd:default
25088 ctrun
svc:/system/smartdc/metadata:default
6507 ctrun
svc:/system/system-log:default
5845 rsyslogd
svc:/system/sysevent:default
242 syseventd
260 devfsadm
svc:/system/picl:default
5593 picld
svc:/system/pfexec:default
62 pfexecd
svc:/system/intrd:default
6365 intrd
svc:/system/idmap:default
5733 idmapd
svc:/system/hotplug:default
5769 hotplugd
svc:/system/fmd:default
5842 fmd
svc:/system/cron:default
5757 cron
svc:/system/console-login:vt6
5973 ttymon
svc:/system/console-login:vt5
5986 ttymon
svc:/system/console-login:vt4
5964 ttymon
svc:/system/console-login:vt3
5989 ttymon
svc:/system/console-login:vt2
5977 ttymon
svc:/system/console-login:ttyc
5916 ttymon
svc:/system/console-login:ttyb
5933 ttymon
svc:/system/console-login:ttya
5900 ttymon
svc:/system/console-login:default
5883 ttymon
svc:/system/auditd:default
5869 auditd
svc:/system/svc/restarter:default
8 svc.startd
svc:/system/fm/smtp-notify:default
6379 smtp-notify
svc:/network/varpd:default
4541 varpd
svc:/network/ssh:default
5873 sshd
svc:/network/smtp:sendmail
5902 sendmail
svc:/network/sendmail-client:default
5878 sendmail
svc:/network/ntp:default
5827 ntpd
svc:/system/name-service-cache:default
15644 nscd
svc:/network/ip-interface-management:default
16 ipmgmtd
svc:/network/lldp/server:default
4670 lldpd
svc:/network/ipfilter:default
5620 svc.ipfd
5622 ipmon
svc:/network/inetd:default
6240 inetd
svc:/network/datalink-management:default
20 dlmgmtd
svc:/network/smb/server:default
6267 smbd
svc:/network/smb/client:default
6259 smbiod-svc
svc:/network/rpc/bind:default
5697 rpcbind
svc:/network/iscsi/initiator:default
5801 iscsid
svc:/network/dns/multicast:default
5871 mdnsd
@bahamas10
Copy link
Author

ps-svcs

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment