시도해 보았지만 작동하지 않습니다ps -eo euser,ruser,suser,fuser,f,comm,label | grep processname
누구든지 이 작업을 수행하는 올바른 방법을 말해 줄 수 있습니까?
답변1
ps
Linux 옵션과 필드 이름을 FreeBSD 옵션과 키워드에 매핑 하려고 합니다 ps
. 이는 Linux 유사 시스템과 BSD 스타일 시스템 간의 주요 차이점 중 하나입니다.
먼저 -e
FreeBSD의 옵션은 다음을 ps
의미합니다."환경도 표시". 실제로 원하는 것은 모든 프로세스를 표시하는 것입니다 -ax
. FreeBSD 의 경우 -x
터미널을 제어하지 않는 프로세스(커널 프로세스 및 데몬)도 표시하는 것입니다. 기본 동작은 이를 표시하지 않는 것입니다.
Linux의 ps
각 필드 선택 정보(에서 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.
ps
각 키워드 선택에 대한 FreeBSD 매뉴얼에서 :
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
명확한 FreeBSD와 동등한 것이 없습니다퓨저이므로 건너뜁니다.
따라서 귀하의 경우에는 다음과 같이 번역됩니다.
ps -axo user,ruser,svuid,state,comm,label |grep <process_name>
답변2
없이 수행하는 방법은 다음과 같습니다 ps
.
awk '{
if ("awk" == $1)
print "PID:",$2,"EUID:",$12,"EGID:",$13,"Groups:",$14;
}' /proc/*/status
"awk"
테스트 중에 적절하게 교체하십시오 if
. 특정 프로세스를 확인하려면 if
테스트를 제거하고 특정 프로세스 ID로 바꾸세요.*