10 개의 Liux 작업 제어 bash 스 크 립 트 인 스 턴 스
17012 단어 linux
작업 제어 (job control) 가 무엇 입 니까?
작업 제 어 는 실행 중인 프로그램 을 멈 추거 나 멈 출 수 있 으 며, 멈 춘 프로 세 스 를 다시 시작 할 수 있 습 니 다. 이것 은 우리 셸 프로그램 을 통 해 이 루어 질 수 있 습 니 다.
1. linux/unix 작업 만 들 기 (job)
1 [root@devops ~]# top &
2 [1] 26569
이 예 에서:
[1]:表明刚才的作业号是1
26569: 这个是进程的ID号
몇 가지 작업 을 더 만 듭 시다.
gedit /tmp/test.c &
sleep 1000 &
2. 배경 에서 실행 중인 작업 을 보 여 줍 니 다. 현재 실행 중인 작업 의 상 태 를 보기 위해 아래 명령 을 입력 할 수 있 습 니 다.
$jobs
$jobs -l
명령 출력 은 다음 과 같 습 니 다:
1 [root@devops ~]# jobs
2 [1]- Stopped top
3 [2]+ Stopped vim /tmp/test.c
4 [3] Running sleep 1000 &
5 [root@devops ~]# jobs -l
6 [1]- 26650 Stopped (tty output) top
7 [2]+ 26651 Stopped (tty output) vim /tmp/test.c
8 [3] 26653 Running sleep 1000 &
9 [root@devops ~]#
3. 실행 중인 작업 을 정지 하거나 정지 합 니 다.
프로그램 이 실행 중 일 때 이 프로그램 을 배경 에서 실행 시 키 려 면 [ctrl] + [z] 를 사용 하거나 kill 명령 을 사용 할 수 있 습 니 다.
kill -s stop PID
실행 중인 ping 명령 을 ctrl + z 로 일시 정지 합 니 다.
1 [root@devops ~]# ping osetc.com
2 PING osetc.com (42.96.192.124) 56(84) bytes of data.
3 64 bytes from 42.96.192.124: icmp_seq=1 ttl=64 time=0.031 ms
4 64 bytes from 42.96.192.124: icmp_seq=2 ttl=64 time=0.036 ms
5 64 bytes from 42.96.192.124: icmp_seq=3 ttl=64 time=0.033 ms
6 ^Z
7 [4]+ Stopped ping osetc.com
8 [root@devops ~]#
4. 일시 정 지 된 작업 을 프론트 데스크 로 복원 하여 실행 할 수 있 습 니 다. fg 명령 을 사용 하여 백 스테이지 에 있 는 ping 프로 세 스 를 프론트 데스크 로 옮 겨 실행 할 수 있 습 니 다. 사용 방법 은 다음 과 같 습 니 다.
fg %5 #fg命令后跟百分号,再跟上作业号
"ping"으로 시작 하 는 모든 명령 행 작업 을 수행 하려 면 다음 형식 을 사용 하 십시오.
fg %ping
예제 출력:
1 root@devops ~]# fg %4
2 ping osetc.com
3 64 bytes from 42.96.192.124: icmp_seq=4 ttl=64 time=0.033 ms
4 64 bytes from 42.96.192.124: icmp_seq=5 ttl=64 time=0.030 ms
5 64 bytes from 42.96.192.124: icmp_seq=6 ttl=64 time=0.030 ms
6 64 bytes from 42.96.192.124: icmp_seq=7 ttl=64 time=0.036 ms
7 ^C
8
9 [root@devops ~]# fg %ping
10 ping osetc.com
11 64 bytes from 42.96.192.124: icmp_seq=3 ttl=64 time=0.023 ms
12 64 bytes from 42.96.192.124: icmp_seq=4 ttl=64 time=0.031 ms
13 64 bytes from 42.96.192.124: icmp_seq=5 ttl=64 time=0.030 ms
14 64 bytes from 42.96.192.124: icmp_seq=6 ttl=64 time=0.029 ms
15 ^C
16 --- osetc.com ping statistics ---
17 6 packets transmitted, 6 received, 0% packet loss, time 10964ms
18 rtt min/avg/max/mdev = .023/0.027/0.031/0.006 ms
5. 백 엔 드 가 일시 중 단 된 프로 세 스 를 백 엔 드 에서 계속 실행 합 니 다.
배경 에 걸 려 있 는 프로 세 스 를 bg 명령 으로 다시 시작 할 수 있 습 니 다. 예 를 들 어 다음 과 같 습 니 다.
1 [root@devops ~]# jobs
2 [2]- Stopped vim /tmp/test.c
3 [4]+ Stopped ping osetc.com
4 [5] Running sleep 1000000 &
5 [root@devops ~]# kill -s stop %5
6 [root@devops ~]# jobs
7 [2] Stopped vim /tmp/test.c
8 [4]- Stopped ping osetc.com
9 [5]+ Stopped sleep 1000000
위 예제 에서 보 듯 이 sleep 프로 세 스 를 실행 하 는 중 끊 겼 습 니 다.
1 [root@devops ~]# bg %5
2 [5]+ sleep 1000000 &
3 [root@devops ~]# jobs
4 [2]- Stopped vim /tmp/test.c
5 [4]+ Stopped ping osetc.com
6 [5] Running sleep 1000000 &
배경 에 걸 려 있 는 프로 세 스 를 다시 시작 합 니 다.
6. 프로 세 스 를 죽 이 고 Liux 명령 의 프로 세 스 를 죽 이기 위해 kill 명령 에 이 프로 세 스 의 작업 ID 번 호 를 입력 할 수 있 습 니 다. 사용 방법 은 다음 과 같 습 니 다.
#kill %4
예제 출력 은 다음 과 같 습 니 다.
1 [root@devops ~]# jobs
2 [2]- Stopped vim /tmp/test.c
3 [4]+ Stopped ping osetc.com
4 [5] Running sleep 1000000 &
5 [root@devops ~]# kill %4
6
7 [4]+ Stopped ping osetc.com
8 [root@devops ~]# jobs
9 [2]- Stopped vim /tmp/test.c
10 [4]+ Terminated ping osetc.com
11 [5] Running sleep 1000000 &
12 [root@devops ~]# jobs
13 [2]+ Stopped vim /tmp/test.c
14
15 [5]- Running sleep 1000000 &
16 [root@devops ~]#
7. 셸 이 종료 후 모든 백 엔 드 작업 프로 세 스 를 죽 이 는 이 유 는 기본적으로 현재 셸 이 종료 할 때 HUP 신 호 를 보 내 모든 백 엔 드 작업 을 죽 이 는 것 입 니 다. 현재 셸 이 종료 한 후에 도 백 엔 드 에서 작업 을 계속 할 수 있 도록 하려 면 disown 명령 을 입력 하고 셸 프로그램 을 종료 할 수 있 습 니 다.
1 [root@devops ~]# jobs
2 [1]+ Running tail -f /var/log/messages &
3 [root@devops ~]# disown
4 [root@devops ~]# exit
8. nohup 명령 을 사용 하여 배경 프로 세 스 가 셸 을 종료 한 후 죽 는 것 을 막 습 니 다.
1 [root@devops ~]# nohup tail -f /var/log/messages &
2 [1] 26806
3 [root@devops ~]# exit
9. 최근 에 실 행 된 작업 의 프로 세 스 번 호 를 찾 습 니 다. 최근 에 실 행 된 작업 의 프로 세 스 ID 번 호 를 찾기 위해 아래 의 특수 기 호 를 사용 할 수 있 습 니 다: $!
1 [root@devops ~]# jobs -l
2 [1]+ 26832 Stopped (tty output) top
3 [2]- 26833 Running sleep 100000 &
4 [root@devops ~]# echo $!
5 26833
10. wait 명령 작업 완료 대기
wait 명령 은 주어진 프로 세 스 ID 가 실 행 될 때 까지 기다 리 고 wait 명령 을 실행 한 후 프로그램 을 수행 합 니 다.
sleep 100 &
wait $!
date
더 많은 참고 사항: bash 셸 스 크 립 트 인 스 턴 스 -- www. osetc. com
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.