일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- ps
- jdk
- 도커
- brew install mariadb
- spring framework
- systemd
- Oracle
- mysql error
- DB
- jar deploy
- docker container
- Docker
- springboot
- jar배포
- map is not a function
- springboot jar
- sudo
- react map error
- mac mariadb
- 관리
- sts
- root
- 도커파일
- mysql
- 파일 시스템
- 설치
- Dockerfile
- install
- join
- Access denied for user ''@'localhost'
- Today
- Total
Yoon.s
프로세스? 포그라운드/백그라운드, 작업 제어, 예약 본문
포그라운드 작업
원래 터미널에서 작업할 때 화면에 출력된 결과를 보고 다시 명령을 입력하는 대화식으로 작업 수행
-> 명령이 실행되어 결과가 출력될 때까지 기다리는 방식으로 처리되는 프로세스
백그라운드 작업
포그라운드 프로세스가 실행되는 동안 뒤에서 다른 프로세스를 실행하여 한 터미널에서 여러 개의 프로세스를 동시에 실행 가능
- 명령의 마지막에 & 기호 추가
- 현재 터미널에서 무엇을 하고 있는지 상관없이 결과 그대로 화면에 출력 -> 결과가 뒤섞여 제대로 확인 불가능
(이때는 출력과 오류 방향을 전환하여 실행 결과와 오류 메시지를 파일로 저장)
작업 제어
jobs [%작업 번호]
: 현재 실행중인 백그라운드 작업 보는 명령어
항목 | 출력 예 | 의미 |
작업 번호 | [1] | 백그라운드 실행할 때마다 순차적 증가 |
작업 순서 | + | + : 가장 최근에 접근한 작업 - : +작업보다 바로 전에 접근한 작업 공백 : 그 외 작업 |
상태 | 실행중 | 실행중 : 현재 실행중 완료 : 작업 정상적으로 종료 종료됨 : 작업이 비정상적으로 종료 정지됨 : 작업이 잠시 중단 |
명령 | sleep 100& | 백그라운드로 실행중인 명령 |
작업 전환
현재 포그라운드로 실행 중인 작업을 백그라운드로 전환하려면 ?
Ctrl+z 으로 작업 종료 -> bg %작업 번호 -> 백그라운드로 전환
-> 백그라운드 작업 없음
-> 포그라운드로 실행중
-> Ctrl+z로 일시 정지
-> 일시 정지 상태
-> 백그라운드로 전환
-> 백그라운드로 실행중
작업 종료
Ctrl+c (포그라운드 종료) : 인터럽트 시그널을 포그라운드 프로세스에 전달, 인터럽트 받으면 프로세스 종료
kill (백그라운드 종료) : 강제 종료 (PID 대신에 '%작업 번호' 지정 가능)
로그아웃 후에도 백그라운드 작업 실행
nohup 명령&
: 로그 아웃 후에도 백그라운드 작업 계속 실행
- 명령의 실행 결과와 오류 메시지가 현재 디렉터리에 nohup.out 파일로 자동 저장
작업 예약
1. 정해진 시간에 한 번 실행
at [옵션] 시간
: 예약한 명령을 정해진 시간에 실행
옵션 |
-l : 현재 실행 대기 중인 명령의 전체 목록 출력 (atq 명령과 동일) |
-r 작업 번호 : 현재 실행 대기 중인 명령 중 해당 작업 번호를 삭제 (atrm과 동일) |
-m : 출력 결과가 없더라도 작업이 완료되면 사용자에게 메일로 알려줌 |
-f 파일 : 표준 입력 대신 실행할 명령을 파일로 지정 |
이때 시간 설정 방법은 ?
- at 4pm + 3 days : 지금부터 3일 후 오후 4시에 작업 수행
- at 10am Jul 31 : 7월 31일 오전 10시에 작업 수행
- at 1am tomorrow : 내일 오전 1시에 작업 수행
- at 10:00am today : 오늘 오전 10시에 작업 수행
atq
: 현재 사용자의 등록된 작업 목록을 보여줌
atrm 작업 번호
: 지정된 작업 번호의 작업을 삭제 (at -r, at -d도 설정 작업 실행 전 삭제됨)
2. 정해진 시간에 반복 실행
crontab [-u 사용자 ID] [옵션] [파일]
: 사용자의 crontab 파일을 관리
옵션 |
-e : 사용자의 crontab 파일을 편집 |
-l : crontab 파일의 목록을 출력 |
-r : crontab 파일을 삭제 |
- crontab 파일의 형식
분(0~59) 시(0~23) 일(1~31) 월(1~12) 요일(0~6) 작업내용
매번 진행하려한다면 *을 이용함 -> ex.. 15 22 1 * * 작업 내용 (= 매달 1일 22:15에 작업을 실행할 것)
crontab -e를 이용해 crontab 파일 생성하고 편집
편집은 파일이 열리며 설정 내용(구조에 맞춰)을 안에 작성해야 함
crontab -l 을 이용해 파일 내용 확인
crontab -r을 이용하여 파일 삭제
파일 내용 확인해보면 나오는 것 없음(삭제됨 확인)
'인프라 > linux' 카테고리의 다른 글
디스크 관리 : LVM, df, du, fsck (0) | 2020.07.15 |
---|---|
파일 시스템 [2] 마운트, 파일 시스템 생성 (0) | 2020.07.15 |
파일시스템 [1] 종류, 구조, inode, 디렉터리 계층 구조 (0) | 2020.07.14 |
프로세스? 정의, 관리, 검색, 종료 (0) | 2020.07.13 |
파일 접근 권한 [1] 파일 속성, 접근 권한, 권한 변경 (0) | 2020.07.13 |