저는 데몬으로 변환되어 백그라운드에서 실행되는 간단한 스크립트를 작성하고 있습니다. 스크립트는 매우 간단하게 작동합니다. ls
명령 프로세스 와 같은 프로세스 유형을 모니터링해야 합니다 . 저장을 위해 파일에 기록합니다.
내 방법은 while true 루프를 사용하고 ps 명령을 사용하여 프로세스 유형을 지속적으로 확인하는 것입니다. 이를 감지하면 파일에 추가합니다.
이런 글을 쓰는 것이 나쁜 방법인지 궁금합니다.
내 코드는 다음과 같습니다
while true
do
if [[ $(ps -aux | grep -w "ls") ]]
then
#append to file
fi
done &
답변1
당신은 할 수
grep commandname /proc/*/comm
내 Linux 시스템에서는 ps | grep
또는 pgrep
.
답변2
당신은 제안,
내 방법은 while true 루프를 사용하고 ps 명령을 사용하여 프로세스 유형을 지속적으로 확인하는 것입니다. 이를 감지하면 파일에 추가합니다.
이렇게 하려면 프로세스 이름을 검색하고 일치하는 항목을 추가하세요. (일치하는 항목이 없으면 출력되지 않습니다.)
while sleep 5
do
ps -ef | grep -w '[l]s' >> matched.txt
done
실제로 달성하려는 것이 무엇인지 알지 못한 채 접근 방식을 비판하는 것은 어렵습니다. 프로세스가 종료되었을 때 프로세스를 다시 시작하려면 장치 사용을 고려하십시오 systemd
. 특정 프로세스의 존재를 기록하려면 lastcomm
다른 감사 도구를 사용하여 지정된 프로세스의 시작 및 종료 시간을 캡처하는 것이 좋습니다. 두 경우 모두 사용 중 루프를 폐지하고 단기 프로세스 실행을 잃지 않을 수 있습니다.