시스템 부팅되면 첫 프로세스는 예전엔 init이였고 지금은 systemd이다. systemd는 pid 1번.
ps -ef로 확인 가능
journalctl명령을 사용하여 시스템에서 발생하는 저널을 전부 확인할 수 있다.
systemd유닛
systemctl은 systemd유닛을 관리하는 명령
cd /etc/systemd 안에 유닛들 있음.
cd /run/systemd 시스템 돌아갈때 돌아가는 것들 임시로 저장되는 곳(건드릴일 없음)
cd /usr/lib 들어가면 systemd 디렉토리 있음. 유저가 뭔가 특정 서비스가 포함된 패키지 설치하면 저기에 들어감.
cd /run/log/journal에 가면 log가 있는데 이게 읽을 수가 없는 형태로 저장되어 있음.
시스템 전원 들어오는 순간 systemd라는 프로세스가 돈다. pid는 1번이다. 이게 도는 순간 log 기록 시작된다. 왜냐 systemd-journal이여서.
로그파일 디스크 꽉 차면 문제 생겨서 매일 용량 관리해주는 것은 크론탭으로 관리.
cat /etc/rsyslog.conf < 전달되는 로그의 규칙들이 정의되어 있다.
journalctl치면 볼 수 있음
journalctl 뒤에 조건 붙여서 볼 수 있다.
journalctl --since --until
journalctl _PID=
setgid 설정되어 있는것 확인 가능
실습을 위해서 nginx를 우선 설치해보자
epel-release 패키지 설치하고 깔아야한다.
꺼져있는 상태고
키고
다시 끄고
이제 의도적으로 에러를 만들어보겠다. nginx.conf 파일을 좀 조작하겠다.
vi편집기로 들어가서 ';' 하나 더 추가해보겠다
이제 다시 start 해보려고 하는데 안 된다.
그렇다면 에러가 났을 때, 그에 대한 힌트를 어디서 찾을 수 있을까. /var/log/messages를 보면 된다.
tail -f /var/log/messages 로 본다
22번째 줄에 ";"가 문제라고 써있는것 볼 수 있다
다시 vi /etc/nginx/nginx.conf를 열고 수정한 다음에 저장하고 nginx를 켜보겠다
되는 것 확인했다. Nice.