나는 이것을 시도했지만 작동하지 않습니다ps -eo euser,ruser,suser,fuser,f,comm,label | grep processname
누구든지 나에게 이 작업을 수행하는 올바른 방법을 보여줄 수 있습니까?
답변1
ps
Linux 옵션과 필드 이름을 FreeBSD 옵션과 키워드에 매핑하려고 합니다 ps
. 이는 Linux 유사 시스템과 BSD 스타일 시스템 간의 주요 차이점 중 하나입니다.
먼저 -e
FreeBSD의 옵션은 다음을 ps
의미합니다."환경도 표시해 주세요". 당신이 원하는 것은 실제로 모든 프로세스, 즉 -ax
FreeBSD를 표시하는 것입니다.
-x
제어 터미널(커널 프로세스 및 데몬) 없이 프로세스도 표시하는 것이며 기본 동작은 이를 표시하지 않는 것입니다.
ps
필드별 선택에 대한 Linux 관련 (에서 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로 대체하세요 .*