He probado esto pero no funcionaps -eo euser,ruser,suser,fuser,f,comm,label | grep processname
¿Alguien puede mostrarme la forma correcta de hacer esto?
Respuesta1
Está intentando asignar ps
las opciones de Linux y el nombre del campo a ps
las opciones y palabras clave de FreeBSD: esta es una de las principales diferencias obvias entre un sistema tipo Linux y uno de estilo BSD.
Primero, la -e
opción en FreeBSD ps
significa"Muestre el entorno también". De hecho, lo que desea es mostrar todos los procesos, es decir, -ax
para FreeBSD;
-x
es mostrar también procesos sin un terminal de control (procesos del kernel y demonios) y el comportamiento predeterminado es no mostrarlos.
Con respecto a Linux ps
sobre la selección por campo (de man ps
):
euser EUSER effective user name. This will be the textual user ID, if it can be obtained and the field width
permits, or a decimal representation otherwise. The n option can be used to force the decimal
representation. (alias uname, user).
ruser RUSER real user ID. This will be the textual user ID, if it can be obtained and the field width permits,
or a decimal representation otherwise.
suser SUSER saved user name. This will be the textual user ID, if it can be obtained and the field width permits,
or a decimal representation otherwise. (alias svuser).
fuser FUSER filesystem access user ID. This will be the textual user ID, if it can be obtained and the field
width permits, or a decimal representation otherwise.
f F flags associated with the process, see the PROCESS FLAGS section. (alias flag, flags).
comm COMMAND command name (only the executable name). Modifications to the command name will not be shown.
A process marked <defunct> is partly dead, waiting to be fully destroyed by its parent. The output in
this column may contain spaces. (alias ucmd, ucomm). See also the args format keyword, the -f option,
and the c option.
When specified last, this column will extend to the edge of the display. If ps can not determine
display width, as when output is redirected (piped) into a file or another command, the output width
is undefined. (it may be 80, unlimited, determined by the TERM variable, and so on) The COLUMNS
environment variable or --cols option may be used to exactly determine the width in this case. The w
or -w option may be also be used to adjust width.
label LABEL security label, most commonly used for SE Linux context data. This is for the Mandatory Access
Control ("MAC") found on high-security systems.
Del ps
manual de FreeBSD sobre la selección por palabra clave:
uid effective user ID (alias euid)
user user name (from UID)
ruid real user ID
ruser user name (from ruid)
svuid saved UID from a setuid executable
state symbolic process state (alias stat)
comm command
label MAC label
No existe un equivalente FreeBSD obvio afusor, así que saltémoslo.
Entonces, en tu caso se traduciría en:
ps -axo user,ruser,svuid,state,comm,label |grep <process_name>
Respuesta2
Y aquí se explica cómo hacerlo sin ps
:
awk '{
if ("awk" == $1)
print "PID:",$2,"EUID:",$12,"EGID:",$13,"Groups:",$14;
}' /proc/*/status
Sustitúyalo "awk"
en la if
prueba según corresponda. Elimine la if
prueba y sustituya una ID de proceso específica *
si desea inspeccionar un proceso específico.