
ps aux 명령어를 입력했을 때 STAT 필드의 첫 번째 글자는 프로세스의 현재 상태를 나타냅니다.kill 명령어가 먹히지 않습니다.
대신 좀비를 만든 top
/etc/crontab 파일이나 crontab -e 명령어로 설정합니다.
순서가 매우 중요합니다. # 분 시 일 월 요일 사용자 명령어
30 03 * * * root /root/backup.sh
crontab을 사용할 수 있습니다.
보안상 가장 권장되는 방식입니다.cron.allow가 없고 이 파일만 존재하면, 여기에 적힌 사용자는 차단되고 나머지는 모두 허용됩니다./etc/at.allow와 /etc/at.deny 파일을 통해 접근을 제어해야 합니다.sudo apt install at # at 패키지 설치 (없을 시)
sudo systemctl start atd # at 데몬 시작 # 사용 예시: 내일 오전 10시에 스크립트 실행 예약
at 10:00 tomorrow
at> /home/user/script.sh
at> <EOT>
# (Ctrl+D로 저장)ps -ef | head -n 2UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Jan01 ? 00:00:10 /sbin/initps aux | head -n 2USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 16880 9840 ? Ss Jan01 0:10 /sbin/initps aux 결과의 STAT 필드는 Ss, R+, SLl 처럼 여러 글자가 섞여 나옵니다.
첫 글자는 앞서 배운 기본 상태(R, S, D, Z)이며, 두 번째 글자부터는 부가 정보를 나타냅니다.Ss: 대기 중(S)이며, 세션 리더(s)인 프로세스 (예: 데몬).R+: 실행 중(R)이며, 현재 터미널 앞단(+)에 나와 있는 프로세스.S<l: 대기 중(S)이며, 우선순위가 높고(<), 멀티 스레드(l)인 프로세스.ps -ef로 부모(PPID)를 확인하고, ps aux로 메모리(RSS)와 상태(STAT)를 정밀 분석합니다.Z인 프로세스는 그 자체를 죽일 수 없으므로, PPID를 찾아 부모를 종료시켜야 해결됩니다.allow 파일을 사용하여 허용된 사용자만 쓰게 하는 것이 원칙입니다.다음 시간에는 운영체제를 윈도우로 옮겨 1.5 윈도우 인증(LSA)과 파일 시스템(NTFS)에 대해 알아보겠습니다.