Friday, April 21, 2017

Daemons listing

Without entering into any further detail about what a daemon is, I'll just show how to list them under a privileged (root) Solaris terminal by means of the standard shell command ps(1):

# ps -o user,uid,pid,ppid,pgid,sid,tty,args -t '?' \
    |(IFS=''; read H; echo "$H"; sort -k5 -k3 \
    |grep filtering_options account )
 
    USER   UID   PID  PPID  PGID   SID TT COMMAND
    root     0     1     0     0     0 ?  /usr/sbin/init
    root     0     3     0     0     0 ?  fsflush
    root     0     7     0     0     0 ?  intrd
    root     0     6     0     0     0 ?  kmem_task
    root     0     2     0     0     0 ?  pageout
    root     0     9     0     0     0 ?  postwaittq
    root     0     0     0     0     0 ?  sched
    root     0     8     0     0     0 ?  vmtasks
    root     0   770     0     0     0 ?  zpool-depot
    root     0   788     0     0     0 ?  zpool-export
    root     0     5     0     0     0 ?  zpool-rpool
    root     0    96     1    13    13 ?  /lib/svc/bin/...
    root     0    13     1    13    13 ?  /lib/svc/bin/svc.startd
    root     0   751     1    13    13 ?  /lib/svc/method/iscsid
    root     0  1862  1353    13    13 ?  /usr/lib/...
    root     0  1353  1341    13    13 ?  /usr/lib/...
    root     0   106     1    13    13 ?  /usr/lib/pfexecd
    root     0   155     1    13    13 ?  /usr/lib/rad/rad -sp
    root     0   164     1    13    13 ?  /usr/lib/rad/rad -sp
    root     0  1341     1    13    13 ?  /usr/sbin/gdm-binary
    root     0    15     1    15    15 ?  /lib/svc/bin/...
  netcfg    17    42     1    42    42 ?  /lib/inet/netcfgd
  netadm    16    45     1    45    45 ?  /usr/sbin/ibmgmtd
   dladm    15    53     1    53    53 ?  /usr/sbin/dlmgmtd
  netadm    16    66     1    66    66 ?  /lib/inet/ipmgmtd
  daemon     1    74     1    74    74 ?  /lib/crypto/kcfd
    root     0    84     1    83    83 ?  /lib/inet/in.mpathd
  daemon     1   149     1   149   149 ?  /usr/lib/utmpd
    root     0   178     1   178   178 ?  /usr/sbin/vbiosd
    root     0   185     1   185   185 ?  /usr/lib/zones/...
    root     0   200     1   200   200 ?  /usr/lib/sysevent/...
    root     0   332     1   332   332 ?  /usr/lib/dbus-daemon ...
    root     0   430     1   430   430 ?  /usr/lib/devfsadm/...
  netadm    16   648     1   648   648 ?  /lib/inet/nwamd
    root     0   688     1   688   688 ?  /usr/lib/picl/picld
    root     0   757     1   757   757 ?  /usr/lib/inet/ntpd ...
    root     0   786     1   786   786 ?  /usr/sbin/nscd
  daemon     1   800     1   800   800 ?  /usr/sbin/rpcbind
    root     0   813     1   813   813 ?  /usr/lib/inet/in.ndpd
    root     0   842     1   840   840 ?  /opt/VirtualBox/...
    root     0   843     1   843   843 ?  /usr/lib/inet/...
    root     0   856     1   856   856 ?  /usr/lib/hotplugd
    root     0   860     1   860   860 ?  /usr/lib/autofs/...
    root     0   862   860   860   860 ?  /usr/lib/autofs/...
    root     0   866     1   865   865 ?  /usr/sbin/...
    root     0   870     1   870   870 ?  /usr/sbin/cron
    root     0   876     1   876   876 ?  /usr/lib/hal/...
    root     0   899   878   876   876 ?  /usr/lib/hal/...
    root     0   895   878   876   876 ?  /usr/lib/hal/...
    root     0   977   878   876   876 ?  /usr/lib/hal/...
    root     0  1160   878   876   876 ?  /usr/lib/hal/...
    root     0  1184   878   876   876 ?  /usr/lib/hal/...
    root     0  1206   878   876   876 ?  /usr/lib/hal/...
    root     0  1219   878   876   876 ?  /usr/lib/hal/...
    root     0  1236   878   876   876 ?  /usr/lib/hal/...
    root     0   878   876   876   876 ?  hald-runner
    root     0   942     1   941   941 ?  /usr/lib/ssh/sshd
    root     0   983     1   983   983 ?  /usr/sbin/syslogd
    root     0  1019     1   987   987 ?  /usr/sbin/auditd
   smmsp    25  1005     1  1005  1005 ?  /usr/lib/inet/...
    root     0  1006     1  1006  1006 ?  /usr/lib/inet/...
    root     0  1024     1  1024  1024 ?  /usr/lib/fm/fmd/fmd
    root     0  1126     1  1125  1125 ?  /usr/bin/python2.7 ...
    root     0  1140     1  1140  1140 ?  /usr/sbin/cupsd -C ...
noaccess 60002  1228     1  1228  1228 ?  /usr/lib/fm/notify/...
    root     0  1232     1  1232  1232 ?  /usr/lib/devchassis/...
noaccess 60002  1234     1  1234  1234 ?  /usr/lib/fm/notify/...
    root     0  1349     1  1348  1348 ?  /usr/lib/rmvolmgr -s
     ocm    62  1639     1  1639  1639 ?  /usr/lib/ocm/ccr/...
     gdm    50  1652     1  1649  1649 ?  /usr/bin/dbus-launch
...


A basic description of each chosen column is on the aforementioned manpage, but it was driven by an interest towards daemon programming. One will note that the main filtering criteria is the absence ('?') of a controlling terminal (TT) and that the output was sorted first by process groups (PGID) and then by process ids (PID). Perhaps one will also note (with the help of Intro(2) manpage) that in this listing each process is a member of the first process group in/of each session because its PGID and SID are equal.