[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
process-attributes-ps-args / process-attributes-ps-format for Darwin
From: |
Filipp Gunbin |
Subject: |
process-attributes-ps-args / process-attributes-ps-format for Darwin |
Date: |
Tue, 12 Apr 2022 03:42:32 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (darwin) |
Hello Michael,
Here's the patch for Darwin.
Also I've added a piece of code to automatically set profile for local
sudo case, so the users on macOS don't see the empty list in Proced by
default.
Strangely, ps on macOS doesn't have keyword to output group name, so
I've omitted it.
Thanks,
Filipp
diff --git a/lisp/net/tramp-integration.el b/lisp/net/tramp-integration.el
index 81990c6a33..901826bfc1 100644
--- a/lisp/net/tramp-integration.el
+++ b/lisp/net/tramp-integration.el
@@ -430,6 +430,100 @@ tramp-connection-local-busybox-ps-variables
'tramp-connection-local-busybox-ps-profile
tramp-connection-local-busybox-ps-variables)
+
+;; Darwin (macOS)
+(defconst tramp-darwin-process-attributes-ps-args
+ `("-acxww"
+ "-o"
+ ,(mapconcat
+ #'identity
+ '("pid"
+ "uid"
+ "user"
+ "gid"
+ "comm=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ")
+ ",")
+ "-o" "state=abcde"
+ "-o"
+ ,(mapconcat
+ #'identity
+ '("ppid"
+ "pgid"
+ "sess"
+ "tty"
+ "tpgid"
+ "minflt"
+ "majflt"
+ "time"
+ "pri"
+ "nice"
+ "vsz"
+ "rss"
+ "etime"
+ "pcpu"
+ "pmem"
+ "args")
+ ","))
+ "List of arguments for \"ps\".
+See `tramp-process-attributes-ps-args'.")
+
+(defconst tramp-darwin-process-attributes-ps-format
+ '((pid . number)
+ (euid . number)
+ (user . string)
+ (egid . number)
+ (comm . 52)
+ (state . 5)
+ (ppid . number)
+ (pgrp . number)
+ (sess . number)
+ (ttname . string)
+ (tpgid . number)
+ (minflt . number)
+ (majflt . number)
+ (time . tramp-ps-time)
+ (pri . number)
+ (nice . number)
+ (vsize . number)
+ (rss . number)
+ (etime . tramp-ps-time)
+ (pcpu . number)
+ (pmem . number)
+ (args . nil))
+ "Alist of formats for \"ps\".
+See `tramp-process-attributes-ps-format'.")
+
+(defconst tramp-connection-local-darwin-ps-variables
+ `((tramp-process-attributes-ps-args
+ . ,tramp-darwin-process-attributes-ps-args)
+ (tramp-process-attributes-ps-format
+ . ,tramp-darwin-process-attributes-ps-format))
+ "Default connection-local ps variables for remote Darwin
+connections.")
+
+(connection-local-set-profile-variables
+ 'tramp-connection-local-darwin-ps-profile
+ tramp-connection-local-darwin-ps-variables)
+
+
+
+;; Preset default "ps" profile for the case of local sudo, based on
+;; system type.
+
+(let ((local-sudo-profile
+ (cond ((eq system-type 'darwin)
+ 'tramp-connection-local-darwin-ps-profile)
+ ;; ...add other system types here
+ )))
+ (when local-sudo-profile
+ (connection-local-set-profiles
+ `(:application tramp :protocol "sudo" :user "root" :machine
,(system-name))
+ local-sudo-profile)
+ (connection-local-set-profiles
+ '(:application tramp :protocol "sudo" :user "root" :machine "localhost")
+ local-sudo-profile)))
+
+
(add-hook 'tramp-unload-hook
(lambda () (unload-feature 'tramp-integration 'force)))
- process-attributes-ps-args / process-attributes-ps-format for Darwin,
Filipp Gunbin <=