Linux에서는 시작 시 실행되는 프로그램(/etc/rc.local, bashrc, bash_profile, $HOME/.config/autostart,...)을 추가하기 위해 많은 파일을 수정할 수 있습니까? 이제 반대 질문이 생겼습니다. 프로그램이 있습니다. 시작하는 동안 이 프로그램이 실행되고 있는지 확인할 수 있습니까?
**참고: 프로그램은 시작 및 종료 시 한 번만 실행할 수 있습니다.
답변1
당신은 볼 수 있습니다액세스 시간스크립트용. 이는 100% 신뢰할 수 없습니다(일부 파일 시스템이 noatime
설정될 수 있으므로). 그러나 초기화 스크립트에는 종종 유용합니다.
find /etc -type f -atime -1
유용하다고 생각함일정 기간.
답변2
pstree
트리 형식으로 실행되는 프로세스에 대한 자세한 출력을 제공합니다.
여기에서 샘플 출력
init─┬─auditd───{auditd} ├─crond ├─docker─┬─10*[bash] │ ├─docker───5*[{docker}] │ ├─docker───4*[{docker}] │ ├─2*[docker───3*[{docker}]] │ ├─start-app.sh─┬─java───40*[{java}] │ │ └─tail │ ├─start-app.sh─┬─java───81*[{java}] │ │ └─tail
답변3
다음 명령을 실행할 수 있습니다.
ps aux | grep PROCESS_NAME
예를 들어 ping
프로세스의 결과는 다음과 같습니다.
user 9639 0.0 0.0 6508 732 pts/16 S+ 08:44 0:00 ping 192.168.0.1
user 9641 0.0 0.1 12972 2420 pts/15 R+ 08:44 0:00 grep --colour=auto ping
두 번째 줄만 표시되면 프로세스가 실행되고 있지 않은 것입니다.
프로세스가 충돌한 것으로 의심되면 를 사용할 수 있습니다 atop
. 에 대한 다른 프로세스를 찾을 수 있습니다.atop
여기.
답변4
초기화 위치를 살펴보고 프로그램이 그곳에서 실행되도록 설정되어 있는지 확인합니다.
솔직히 프로그램이 어떻게든 되면할 수 있다실행되지만 실행되는지 알 수 없는 경우, 실행되는지 확인할 수 있는 유일한 기회는 실행 방법이 있는지 확인하거나(예: local.rc
일부 또는 이 클래스에 등록됨) 결과를 확인하는 것입니다(예: 프로그램이 항상 file 에 닿으면 /home/someuser/a
다른 어떤 것도 건드리면 안 됩니다).
위의 내용에서는 로그가 없다고 가정합니다.