포그라운드 프로세스
- 사용자가 입력한 명령이 실행되어 결과가 출력될 때까지 기라뎌야 하는 포그라운드 방식으로 처리되는 프로세스
- 이를 작업 제어에서는 포그라운드 작업이라고 함
백그라운드 프로세스
- 명령을 실행하면 명령의 처리가 끝나는 것과 관계없이 곧바로 프롬프트가 출력되어 사용자가 다른 작업을 계속 할 수 있음
- 작업 제어에서는 백그라운드 작업이라고 함
- 백그라운드로 처리할 때는 주로 출력과 오류 방향 전환을 하여 실행 결과와 오류 메시지를 파일로 저장
- 작업 제어는 작업 전환과 작업 일시 중지, 작업 종료를 의미
- 포그라운드 작업 -> 백그라운드 작업, 백그라운드 작업 -> 포그라운드 작업
- 작업을 잠시 중단
- 프로세스를 종료하는 것 처럼 작업을 종료
- 백그라운드 작업을 모두 보여줌
- 특정 작업 번호를 지정하면 해당 작업의 정보만 보여줌
jobs 명령어의 출력 정보
작업 전환 명령어: fg bg + %작업 번호
작업 종료 명령어: ctrl + c (포그라운드), kill + [PID,%작업번호] (백그라운드)
- 로그아웃한 다음에도 작업이 완료될 때 까지 백그라운드 작업을 실행해야 할 경우가 있다
- 이때 nohup 명령어 사용
- nohup + 명령 + &
- nohup 명령에 대한 출력은 기본적으로 nohup.out에 저장됨
예약한 명령을 정해진 시간에 실행한다
1. at 명령은 설치 필요
sudo apt-get install at //메일 기능을 사용하기 위해서는 추가 설치 필요 sudo apt-get install mailutils
2. at 명령어 사용법
3. at 작업 파일 확인하기
- at 명령으로 생성된 작업 파일은 /var/spool/at 디렉터리에 저장
- daemon 그룹의 사용자만 해당 디렉토리 내용 확인 가능 -> 비추천
ls -l /var/spool/cron/atjobs
4. at 작업 목록 확인하기 : at -l, atq
5. at 작업 삭제하기 : at -d, atrm
- at 명령으로 설정한 작업이 실행되기 전에 삭제하려면 -d 옵션을 사용해 삭제할 작업 번호를 지정
6. at 명령 사용 제한하기
- /etc/at.allow 파일과 /etc/at.deny 파일에는 한줄에 사용자 이름을 하나씩만 기록
- /etc/at.allow 파일이 있으면 이 파일에 있는 사용자만 at 명령을 사용할 수 있음, 이 경우 /etc/at.deny 파일은 무시됨
- /etc/at.allow 파일이 없으면 /etc/at.deny 파일에 지정된 사용자를 제외한 모든 사용자가 at 명령을 사용 가능
- 만약 두 파일 모두 없다면 root만 at 명령 사용 가능
- 한 사용자가 두 파일 모두에 속해 있다면 그 사용자는 at 명령 사용가능 -> at.allow의 우선순위가 높다
- /etc/at.deny 를 빈 파일로 두면 모든 사용자가 at 명령 사용 가능 -> 초기 설정
- 사용자의 crontab 파일을 관리
1. crontab 파일의 형식
2. crontab 파일 생성하고 편집하기 : crontab -e
- crontab 편집기는 기본적으로 VI, 또는 EDITOR 환경 변수에 지정된 편집기 사용
- contab -e 명령으로 편집한 파일을 저장하면 자동적으로 /var/spool/cron/crontabs 디렉토리에 사용자 이름으로 생성됨
3. crontab 파일 내용 확인하기 : crontab -l
4. crontab 파일 삭제하기 : crontab -r
5. crontab 명령 사용 제한하기
- /etc/cron.allow, /etc/cron.deny 파일
- cron.deny 파일은 기본적으로 있음, cron.allow 파일은 관리자가 만들어야 함
- cron.allow 파일의 우선순위가 cron.deny 파일보다 높음
- 두 파일이 모두 없다면, root 만 crontab 명령 사용 가능