Opened 4 years ago
Last modified 4 years ago
#60534 new enhancement
Print status information for a daemon
Reported by: | FranklinYu (Franklin Yu) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | base | Version: | 2.6.2 |
Keywords: | Cc: | ||
Port: |
Description (last modified by FranklinYu (Franklin Yu))
I would like a new action print
that does something similar to systemctl status
in systemd. I’m not sure whether everything is available though; I guess we can parse the output of launchctl print
and get some information.
The PID from launchctl print
doesn’t look like the real daemon (at least it’s the case for Apache HTTP Server), but the daemondo
process instead. The real PID locates at
/opt/local/var/run/apache2/httpd.pid
for Apache. I’m not sure whether it’s equivalent to show the status (running/error/not-loaded) of the daemondo
process instead of the real one; showing daemondo
process sounds more generic.
Change History (5)
comment:1 Changed 4 years ago by FranklinYu (Franklin Yu)
comment:2 Changed 4 years ago by FranklinYu (Franklin Yu)
Description: | modified (diff) |
---|
comment:3 Changed 4 years ago by ryandesign (Ryan Carsten Schmidt)
Replying to FranklinYu:
something similar to
systemctl status
in systemd
For those of us who only use macOS which does not have systemd, what does systemctl status
do?
comment:4 Changed 4 years ago by kencu (Ken)
● UbuntuMacBook State: running Jobs: 0 queued Failed: 0 units Since: Thu 2020-05-21 19:30:40 PDT; 23h ago CGroup: / ├─user.slice │ ├─user-1000.slice │ │ ├─user@1000.service │ │ │ ├─gsd-xsettings.service │ │ │ │ └─2816 /usr/libexec/gsd-xsettings │ │ │ ├─gvfs-goa-volume-monitor.service │ │ │ │ └─2457 /usr/libexec/gvfs-goa-volume-monitor │ │ │ ├─gsd-power.service │ │ │ │ └─2787 /usr/libexec/gsd-power │ │ │ ├─xdg-permission-store.service │ │ │ │ └─2661 /usr/libexec/xdg-permission-store │ │ │ ├─xdg-document-portal.service │ │ │ │ └─2657 /usr/libexec/xdg-document-portal │ │ │ ├─xdg-desktop-portal.service │ │ │ │ └─2648 /usr/libexec/xdg-desktop-portal │ │ │ ├─gsd-sound.service │ │ │ │ └─2803 /usr/libexec/gsd-sound │ │ │ ├─gsd-rfkill.service │ │ │ │ └─2789 /usr/libexec/gsd-rfkill │ │ │ ├─gsd-usb-protection.service │ │ │ │ └─2806 /usr/libexec/gsd-usb-protection │ │ │ ├─gsd-print-notifications.service │ │ │ │ ├─2788 /usr/libexec/gsd-print-notifications │ │ │ │ └─2900 /usr/libexec/gsd-printer │ │ │ ├─evolution-calendar-factory.service │ │ │ │ └─2754 /usr/libexec/evolution-calendar-factory │ │ │ ├─gsd-a11y-settings.service │ │ │ │ └─2770 /usr/libexec/gsd-a11y-settings │ │ │ ├─gsd-wwan.service │ │ │ │ └─2812 /usr/libexec/gsd-wwan │ │ │ ├─pulseaudio.service │ │ │ │ └─2390 /usr/bin/pulseaudio --daemonize=no --log-target=journal │ │ │ ├─gsd-screensaver-proxy.service │ │ │ │ └─2790 /usr/libexec/gsd-screensaver-proxy │ │ │ ├─gsd-media-keys.service │ │ │ │ └─2785 /usr/libexec/gsd-media-keys │ │ │ ├─gvfs-daemon.service │ │ │ │ ├─2403 /usr/libexec/gvfsd │ │ │ │ ├─2408 /usr/libexec/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes │ │ │ │ └─2756 /usr/libexec/gvfsd-trash --spawner :1.2 /org/gtk/gvfs/exec_spaw/0 │ │ │ ├─evolution-source-registry.service │ │ │ │ └─2734 /usr/libexec/evolution-source-registry │ │ │ ├─gvfs-udisks2-volume-monitor.service │ │ │ │ └─2409 /usr/libexec/gvfs-udisks2-volume-monitor │ │ │ ├─gnome-launched-firefox.desktop-8482.scope │ │ │ │ ├─8482 /usr/lib/firefox/firefox -new-window │ │ │ │ ├─8536 /usr/lib/firefox/firefox -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 224306 -parentBuildID 20200507114007 -appdir /usr/lib/firefox/browser 8482 true tab │ │ │ │ ├─8601 /usr/lib/firefox/firefox -contentproc -childID 3 -isForBrowser -prefsLen 6639 -prefMapSize 224306 -parentBuildID 20200507114007 -appdir /usr/lib/firefox/browser 8482 true tab │ │ │ │ └─8660 /usr/lib/firefox/firefox -contentproc -childID 4 -isForBrowser -prefsLen 7486 -prefMapSize 224306 -parentBuildID 20200507114007 -appdir /usr/lib/firefox/browser 8482 true tab │ │ │ ├─gsd-sharing.service │ │ │ │ └─2794 /usr/libexec/gsd-sharing │ │ │ ├─init.scope │ │ │ │ ├─2374 /lib/systemd/systemd --user │ │ │ │ └─2376 (sd-pam) │ │ │ ├─gsd-smartcard.service │ │ │ │ └─2798 /usr/libexec/gsd-smartcard │ │ │ ├─gsd-housekeeping.service │ │ │ │ └─2779 /usr/libexec/gsd-housekeeping │ │ │ ├─gsd-wacom.service │ │ │ │ └─2809 /usr/libexec/gsd-wacom │ │ │ ├─gvfs-gphoto2-volume-monitor.service │ │ │ │ └─2453 /usr/libexec/gvfs-gphoto2-volume-monitor │ │ │ ├─gnome\x2dsession\x2dmanager.slice │ │ │ │ └─gnome-session-manager@ubuntu.service │ │ │ │ ├─2652 /usr/libexec/gnome-session-binary --systemd-service --session=ubuntu │ │ │ │ ├─2826 /usr/bin/python3 /usr/bin/blueman-applet │ │ │ │ ├─2842 /usr/libexec/evolution-data-server/evolution-alarm-notify │ │ │ │ ├─2843 /usr/libexec/gsd-disk-utility-notify │ │ │ │ ├─2910 /snap/snap-store/454/usr/bin/snap-store --gapplication-service │ │ │ │ ├─3016 /usr/bin/python3 /usr/bin/blueman-tray │ │ │ │ └─3798 update-notifier │ │ │ ├─gnome-session-monitor.service │ │ │ │ └─2646 /usr/libexec/gnome-session-ctl --monitor │ │ │ ├─gsd-datetime.service │ │ │ │ └─2773 /usr/libexec/gsd-datetime │ │ │ ├─xdg-desktop-portal-gtk.service │ │ │ │ └─2673 /usr/libexec/xdg-desktop-portal-gtk │ │ │ ├─obex.service │ │ │ │ └─3031 /usr/lib/bluetooth/obexd │ │ │ ├─gnome-shell-x11.service │ │ │ │ └─2689 /usr/bin/gnome-shell │ │ │ ├─at-spi-dbus-bus.service │ │ │ │ ├─2618 /usr/libexec/at-spi-bus-launcher │ │ │ │ ├─2623 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3 │ │ │ │ └─2637 /usr/libexec/at-spi2-registryd --use-gnome-session │ │ │ ├─apps.slice │ │ │ │ └─apps-org.gnome.Terminal.slice │ │ │ │ ├─vte-spawn-41603486-8e1c-4208-a44c-cd2c4870a9aa.scope │ │ │ │ │ ├─8785 bash │ │ │ │ │ └─8805 systemctl status │ │ │ │ ├─gnome-terminal-server.service │ │ │ │ │ └─8774 /usr/libexec/gnome-terminal-server │ │ │ │ └─vte-spawn-06abff5b-3ca2-432c-aaeb-db96f6eaeda0.scope │ │ │ │ └─3825 syndaemon -i 2 -t -d │ │ │ ├─gvfs-metadata.service │ │ │ │ └─3795 /usr/libexec/gvfsd-metadata │ │ │ ├─dbus.service │ │ │ │ ├─2399 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only │ │ │ │ ├─2461 /usr/libexec/goa-daemon │ │ │ │ ├─2479 /usr/libexec/goa-identity-service │ │ │ │ ├─2607 /usr/libexec/ibus-portal │ │ │ │ ├─2617 /usr/bin/gnome-keyring-daemon --start --foreground --components=secrets │ │ │ │ ├─2684 /usr/libexec/dconf-service │ │ │ │ ├─2730 /usr/libexec/gnome-shell-calendar-server │ │ │ │ └─2746 /usr/bin/gjs /usr/share/gnome-shell/org.gnome.Shell.Notifications │ │ │ ├─evolution-addressbook-factory.service │ │ │ │ └─2850 /usr/libexec/evolution-addressbook-factory │ │ │ ├─tracker-miner-fs.service │ │ │ │ └─2392 /usr/libexec/tracker-miner-fs │ │ │ ├─gvfs-mtp-volume-monitor.service │ │ │ │ └─2449 /usr/libexec/gvfs-mtp-volume-monitor │ │ │ ├─gsd-keyboard.service │ │ │ │ └─2782 /usr/libexec/gsd-keyboard │ │ │ ├─gsd-color.service │ │ │ │ └─2771 /usr/libexec/gsd-color │ │ │ └─gvfs-afc-volume-monitor.service │ │ │ └─2491 /usr/libexec/gvfs-afc-volume-monitor │ │ └─session-2.scope │ │ ├─2357 gdm-session-worker [pam/gdm-password] │ │ ├─2395 /usr/bin/gnome-keyring-daemon --daemonize --login │ │ ├─2431 /usr/lib/gdm3/gdm-x-session --run-script env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu │ │ ├─2433 /usr/lib/xorg/Xorg vt2 -displayfd 3 -auth /run/user/1000/gdm/Xauthority -background none -noreset -keeptty -verbose 3 │ │ ├─2442 /usr/lib/xserver-xorg-video-intel/xf86-video-intel-backlight-helper intel_backlight │ │ ├─2466 /usr/libexec/gnome-session-binary --systemd --systemd --session=ubuntu │ │ ├─2579 /usr/bin/ssh-agent /usr/bin/im-launch env GNOME_SHELL_SESSION_MODE=ubuntu /usr/bin/gnome-session --systemd --session=ubuntu │ │ ├─2596 /usr/bin/ibus-daemon --daemonize --xim │ │ ├─2601 /usr/libexec/ibus-memconf │ │ ├─2602 /usr/libexec/ibus-ui-gtk3 │ │ ├─2603 /usr/libexec/ibus-extension-gtk3 │ │ ├─2605 /usr/libexec/ibus-x11 --kill-daemon │ │ └─2713 /usr/libexec/ibus-engine-simple │ └─user-121.slice │ ├─user@121.service │ │ ├─gsd-xsettings.service │ │ │ └─2063 /usr/libexec/gsd-xsettings │ │ ├─gsd-power.service │ │ │ └─2041 /usr/libexec/gsd-power │ │ ├─xdg-permission-store.service │ │ │ └─1960 /usr/libexec/xdg-permission-store │ │ ├─gnome-keyring-ssh.service │ │ │ └─1666 /usr/bin/gnome-keyring-daemon --start --components ssh │ │ ├─gsd-sound.service │ │ │ └─2053 /usr/libexec/gsd-sound │ │ ├─gsd-rfkill.service │ │ │ └─2048 /usr/libexec/gsd-rfkill │ │ ├─gsd-usb-protection.service │ │ │ └─2056 /usr/libexec/gsd-usb-protection │ │ ├─gsd-print-notifications.service │ │ │ ├─2042 /usr/libexec/gsd-print-notifications │ │ │ └─2131 /usr/libexec/gsd-printer │ │ ├─gsd-a11y-settings.service │ │ │ └─2033 /usr/libexec/gsd-a11y-settings │ │ ├─gsd-wwan.service │ │ │ └─2058 /usr/libexec/gsd-wwan │ │ ├─pulseaudio.service │ │ │ └─1412 /usr/bin/pulseaudio --daemonize=no --log-target=journal │ │ ├─gsd-media-keys.service │ │ │ └─2038 /usr/libexec/gsd-media-keys │ │ ├─init.scope │ │ │ ├─1389 /lib/systemd/systemd --user │ │ │ └─1392 (sd-pam) │ │ ├─gsd-smartcard.service │ │ │ └─2050 /usr/libexec/gsd-smartcard │ │ ├─gsd-wacom.service │ │ │ └─2057 /usr/libexec/gsd-wacom │ │ ├─gnome\x2dsession\x2dmanager.slice │ │ │ └─gnome-session-manager@gnome-login.service │ │ │ └─1684 /usr/libexec/gnome-session-binary --systemd-service --session=gnome-login │ │ ├─gnome-session-monitor.service │ │ │ └─1663 /usr/libexec/gnome-session-ctl --monitor │ │ ├─gnome-shell-x11.service │ │ │ ├─1728 /usr/bin/gnome-shell │ │ │ ├─1905 ibus-daemon --panel disable --xim │ │ │ ├─1912 /usr/libexec/ibus-memconf │ │ │ ├─1915 /usr/libexec/ibus-x11 --kill-daemon │ │ │ └─2074 /usr/libexec/ibus-engine-simple │ │ ├─at-spi-dbus-bus.service │ │ │ ├─1611 /usr/libexec/at-spi-bus-launcher │ │ │ ├─1616 /usr/bin/dbus-daemon --config-file=/usr/share/defaults/at-spi2/accessibility.conf --nofork --print-address 3 │ │ │ └─1934 /usr/libexec/at-spi2-registryd --use-gnome-session │ │ ├─dbus.service │ │ │ ├─1536 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only │ │ │ ├─1918 /usr/libexec/ibus-portal │ │ │ ├─1942 /usr/libexec/dconf-service │ │ │ └─2025 /usr/bin/gjs /usr/share/gnome-shell/org.gnome.Shell.Notifications │ │ ├─tracker-miner-fs.service │ │ │ └─1771 /usr/libexec/tracker-miner-fs │ │ ├─gsd-keyboard.service │ │ │ └─2037 /usr/libexec/gsd-keyboard │ │ └─gsd-color.service │ │ └─2036 /usr/libexec/gsd-color │ └─session-c2.scope │ ├─1533 gdm-session-worker [pam/gdm-launch-environment] │ ├─1552 /usr/lib/gdm3/gdm-x-session gnome-session --autostart /usr/share/gdm/greeter/autostart │ ├─1555 /usr/lib/xorg/Xorg vt1 -displayfd 3 -auth /run/user/121/gdm/Xauthority -background none -noreset -keeptty -verbose 3 │ └─1597 /usr/libexec/gnome-session-binary --systemd --autostart /usr/share/gdm/greeter/autostart ├─init.scope │ └─1 /sbin/init splash └─system.slice ├─irqbalance.service │ └─888 /usr/sbin/irqbalance --foreground ├─systemd-udevd.service │ └─398 /lib/systemd/systemd-udevd ├─whoopsie.service │ └─1560 /usr/bin/whoopsie -f ├─cron.service │ └─866 /usr/sbin/cron -f ├─polkit.service │ └─896 /usr/lib/policykit-1/polkitd --no-debug ├─networkd-dispatcher.service │ └─889 /usr/bin/python3 /usr/bin/networkd-dispatcher --run-startup-triggers ├─rtkit-daemon.service │ └─1541 /usr/libexec/rtkit-daemon ├─bluetooth.service │ └─1958 /usr/lib/bluetooth/bluetoothd ├─accounts-daemon.service │ └─851 /usr/lib/accountsservice/accounts-daemon ├─wpa_supplicant.service │ └─915 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant ├─ModemManager.service │ └─992 /usr/sbin/ModemManager --filter-policy=strict ├─snap.plexmediaserver.plexmediaserver.service │ ├─ 970 /bin/bash /snap/plexmediaserver/90/wrapper.sh │ ├─1126 /bin/bash /snap/plexmediaserver/90/wrapper.sh │ ├─1127 ./Plex Media Server │ ├─1254 Plex Plug-in [com.plexapp.system] /snap/plexmediaserver/90/Resources/Plug-ins-e3c1f7bcd/Framework.bundle/Contents/Resources/Versions/2/Python/bootstrap.py --server-version 1.19.3.2843-e3c1f7bcd /snap/plexmediaserver/90/Resources/Plug-ins-e3c1f7bcd/System.bundle │ └─1720 /snap/plexmediaserver/90/Plex Tuner Service /snap/plexmediaserver/90/Resources/Tuner/Private /snap/plexmediaserver/90/Resources/Tuner/Shared 1.19.3.2843-e3c1f7bcd 32600 /waitmutex ├─systemd-journald.service │ └─363 /lib/systemd/systemd-journald ├─unattended-upgrades.service │ └─1131 /usr/bin/python3 /usr/share/unattended-upgrades/unattended-upgrade-shutdown --wait-for-signal ├─fwupd.service │ └─3054 /usr/libexec/fwupd/fwupd ├─colord.service │ └─1885 /usr/libexec/colord ├─NetworkManager.service │ └─870 /usr/sbin/NetworkManager --no-daemon ├─snapd.service │ └─904 /usr/lib/snapd/snapd ├─gdm.service │ └─1366 /usr/sbin/gdm3 ├─switcheroo-control.service │ └─905 /usr/libexec/switcheroo-control ├─rsyslog.service │ └─901 /usr/sbin/rsyslogd -n -iNONE ├─snap.canonical-livepatch.canonical-livepatchd.service │ └─969 /snap/canonical-livepatch/95/canonical-livepatchd ├─kerneloops.service │ ├─1567 /usr/sbin/kerneloops --test │ └─1569 /usr/sbin/kerneloops ├─cups-browsed.service │ └─5372 /usr/sbin/cups-browsed ├─cups.service │ ├─5370 /usr/sbin/cupsd -l │ └─5892 /usr/lib/cups/notifier/dbus dbus:// ├─upower.service │ └─1527 /usr/lib/upower/upowerd ├─systemd-resolved.service │ └─661 /lib/systemd/systemd-resolved ├─udisks2.service │ └─914 /usr/lib/udisks2/udisksd ├─acpid.service │ └─852 /usr/sbin/acpid ├─dbus.service │ └─868 /usr/bin/dbus-daemon --system --address=systemd: --nofork --nopidfile --systemd-activation --syslog-only ├─systemd-timesyncd.service │ └─662 /lib/systemd/systemd-timesyncd ├─avahi-daemon.service │ ├─857 avahi-daemon: running [UbuntuMacBook.local] │ └─917 avahi-daemon: chroot helper └─systemd-logind.service └─912 /lib/systemd/systemd-logind
comment:5 Changed 4 years ago by FranklinYu (Franklin Yu)
Thanks Ken, this is very helpful. I should have included an example myself. I actually wanted the usage that prints a single service (a.k.a. "job" in launchctl term); for example, systemctl status ssh
gives
● ssh.service - OpenBSD Secure Shell server Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2020-02-09 19:30:14 UTC; 3 months 11 days ago Docs: man:sshd(8) man:sshd_config(5) Process: 816 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS) Main PID: 828 (sshd) Tasks: 1 (limit: 663) Memory: 6.2M CGroup: /system.slice/ssh.service └─828 /usr/sbin/sshd -D
I might work on this if I can find time. Will refer to the
load
actionhttps://github.com/macports/macports-base/blob/v2.6.2/src/port1.0/portload.tcl
for implementation.