6장 프로세스
데몬 프로세스 : 특정 서비스를 제공하기 위해서 24시간 백그라운드에서 동작하는 프로세스
고아 프로세스 : 자식보다 부모가 먼저 종료된 프로세스.
좀비 프로세스 : 자식 프로세스가 실행을 종료 했는데도 프로세스 테이블 목록에 남아있는 프로세스.

ps [옵션] : 현재 실행 중인 프로세스의 목록을 보여줌
UNIX 옵션( 자주 사용 ) -ef  :  -e 와 -f 를 합친 옵션,   프로세스의 자세한 정보를 출력한다.
BSD 옵션  -aux  :  프로세스의 자세한 정보를 출력한다.


ps -ef grep | 문자열   >>  실행중인 프로세스의 자세한정보 출력. ( PID를 확인한다 )
프로세스 종료하기  kill -9 PID   ( 9번은 강제 종료이기 때문에 최후의 수단으로 사용하자 )
kill 기본값 : 15 ( 정상적인 마무리 )

백그라운드 작업 하는법  :  [명령어] &
Ctrl + Z  :   현재 포그라운드 작업을 정지 시킨 후 백그라운드로 전환
jobs  :  백그라운드 작업 정보
bg %작업 번호  :   해당 작업을 백그라운드로 전환
fg %작업 번호  :  해당 작업을 포그라운드로 전환

nohup [명령어] &  :  로그아웃 후에도 백그라운드 작업 계속 하게 하기
결과 출력은 nohup.out 에 저장된다.
nohup [명령어] > [파일명] 2>&1 &   :   nohup.out 말고 다른 파일에 저장하기


at   :   실행 예약
at -l  :  실행 예약중인 목록 보기
at -d [작업번호]  :  예약 취소 하기

과제 : ps -ef 명령어를 실행해서 /root/at/psfile01에 저장하게 하라
           2분이나 3분뒤에 저장되게 하라
at now +3min     
ps -ef > /root/at/psfile01 
ctrl+d

 

 

 

crontab  :  지정 시간마다 반복적으로 명령 실행
crontab -e : 편집 (생성, 삭제 등)
crontab -l : 예약작업 리스트 출력
crontab -r : 현재 계정의 crontab 내용 모두 삭제(일부만 삭제는 -e로 편집)
* 11 21 7 * ls -al > /tmp/crontab.out

* 기호를 입력한 필드에서는 모든 값에서 cron이 수행된다.  위 예제에서는 매 분마다.

예시

매년 1월 첫번째 일요일에 재부팅이 되도록 설정

0 0 1-7 1 0 reboot

매월 오후 1시부터 5시까지 10분마다 date 명령어를 실행해서 date01에 이어쓰기로 저장하도록 설정

*/10 13-17 * * * date >> date01

------------------------------------------------------
test 사용자가 매년 크리스마스에 메리크리스 메시지를 /tmp/christmas 파일에 덮어쓰기를 하게 해보자
root계정에서 
crontab -e -u test
0 0 25 12 * echo "Merry Christmas" > /tmp/christmas

엑세스 제어 설정 파일
<Centos7 기준> -> 다른 리눅스, 유닉스는 다를 수 있음

at
/etc/at.deny
/etc/at.allow

crontab
/etc/cron.deny            
/etc/cron.allow

1. *.allow 파일은 존재하지 않고 *.deny 파일만 존재하면 *.deny 파일에 등록된 사용자는 스케쥴링 명령 사용불가
2. *.allow 파일과 *.deny 파일이 둘다 존재하면 *.allow에 등록된 사용자만 스케쥴링 명령 사용 가능
3. 둘다 존재하지 않으면 root만 스케쥴링 명령 사용가능
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
8장 리눅스의 부팅
바이오스 단계
pc에 장착된 기본적인 하드웨어 (키보드 디스크) 의 상태를 확인한 후 부팅 장치를 선택하여 디스크의 첫 섹터에서
512바이트를 로딩 ( master boot record , MBR )

init 프로세스에서 사용하던 런레벨 ( Run Level )의 개념에 대한 이해 필요.
init 프로세스 = systemd으로 바뀌기 전의 1번 프로세스

 

 

 

init 5  :  GUI 모드 ( 지금 실습 중인 모드 )
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
systemd 서비스
systemd 를 기반으로 서비스를 시작하거나 종료할 때 사용하는 명령어는 systemctl
systemctl start httpd    http 서비스를 위해서 서버 시작 ( 아파치 인듯 )
systemctl status httpd   httpd 서비스 상태 확인

cd /var/www/html    >> 웹 서버 기본 홈 디렉토리 
vi index.html
<marquee>hello world </marquee>
파이어폭스 > 127.0.0.1 접속


-----------------
80 포트 열기    ( 포트 개방을 하면 윈도우 브라우저에서 ip주소로 접속 가능 )

firewall-cmd --add-service=http    -> 재부팅하면 다시 닫힘
firewall-cmd --add-port=80/tcp

firewall-cmd --permanent --add-service=http           https(443),telnet,ftp.....
firewall-cmd --reload

firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload

firewall-cmd --permanent --remove-service=http 
firewall-cmd --reload

firewall-cmd --permanent --remove-port=80/tcp
firewall-cmd --reload
-----------
systemd 와 런레벨    근데 target 이 뭐죠 ?? 컴퓨터가 부팅할 때 불러들이는 타겟 ??? 부팅 모드인것 같습니다.
종료
복구모드 ( 안전모드 )
CLI 
GUI
재부팅

 

+ Recent posts