프로 세 스 관리 Linux 명령
9297 단어 linux프로 세 스 관리 명령링크 ux 기반
프로 세 스 를 시작 하 는 가장 쉬 운 방법 은 명령 행 에 이름 을 입력 하고 Enter 키 를 누 르 는 것 이다.Nginx 웹 서버 를 시작 하려 면 nginx 를 입력 하 십시오.그냥 버 전 보고 싶 으 셨 나 봐 요.
alan@workstation:~$ nginx -v
nginx version: nginx/1.14.0
2. 실행 가능 한 경 로 를 봅 니 다.
이상 시작 프로 세 스 의 프 리 젠 테 이 션 은 실행 가능 한 파일 이 실행 가능 한 경로 에 있다 고 가정 하 는 것 입 니 다.이 경 로 를 이해 하 는 것 이 프로 세 스 를 신뢰성 있 게 시작 하고 관리 하 는 관건 이다.관리 자 는 보통 그들 이 원 하 는 목적 을 위해 이 경 로 를 맞 출 것 이다.실행 가능 한 경 로 를 echo $PATH 로 볼 수 있 습 니 다.
alan@workstation:~$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
3. WHICH
실행 가능 한 파일 의 전체 경 로 를 which 명령 으로 봅 니 다.
alan@workstation:~$ which nginx
/opt/nginx/bin/nginx
4. 프로 세 스 실행 유지
NOHUP
터미널 을 로그아웃 하거나 닫 을 때 프로 세 스 가 계속 실행 되 지 않 을 수도 있 습 니 다.이 특수 한 상황 은 실행 할 명령 앞 에 nohup 명령 을 사용 하여 프로 세 스 를 계속 실행 시 킬 수 있 습 니 다.또한, 하나의 & 기 호 를 추가 하면 프로 세 스 를 배경 으로 보 내 고 터미널 을 계속 사용 할 수 있 습 니 다.예 를 들 어 my program. sh 를 실행 하고 싶다 고 가정 합 니 다.
nohup myprogram.sh &
nohup PID。
5. 실행 중인 프로 세 스 관리
프로 세 스 마다 유일한 프로 세 스 표지 번호 (PID) 가 있 습 니 다.이 숫자 는 우리 가 모든 프로 세 스 를 관리 하 는 데 쓰 인 다.프로 세 스 이름 도 사용 할 수 있 습 니 다. 아래 에서 보 여 드 리 겠 습 니 다.실행 중인 프로 세 스 의 상 태 를 검사 할 수 있 는 명령 이 몇 개 있 습 니 다.이 명령 들 을 빨리 봅 시다.
1. PS 에서 가장 흔히 볼 수 있 는 것 은 ps 명령 입 니 다.ps 의 기본 출력 은 현재 터미널 에서 실행 중인 프로 세 스 의 간단 한 목록 입 니 다.아래 와 같이 첫 번 째 열 에는 PID 가 포함 되 어 있 습 니 다.
alan@workstation:~$ ps
PID TTY TIME CMD
23989 pts/0 00:00:00 bash
24148 pts/0 00:00:00 ps
나 는 내 가 이전에 시작 한 Nginx 프로 세 스 를 보고 싶다.이 를 위해, 나 는 ps 에 게 실행 중인 모든 프로 세 스 (- e) 와 완전한 목록 (- f) 을 보 여 주 었 다.
alan@workstation:~$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0Aug18? 00:00:10/sbin/init splash
root 2 0 0Aug18? 00:00:00[kthreadd]
root 4 2 0Aug18? 00:00:00[kworker/0:0H]
root 6 2 0Aug18? 00:00:00[mm_percpu_wq]
root 7 2 0Aug18? 00:00:00[ksoftirqd/0]
root 8 2 0Aug18? 00:00:20[rcu_sched]
root 9 2 0Aug18? 00:00:00[rcu_bh]
root 10 2 0Aug18? 00:00:00[migration/0]
root 11 2 0Aug18? 00:00:00[watchdog/0]
root 12 2 0Aug18? 00:00:00[cpuhp/0]
root 13 2 0Aug18? 00:00:00[cpuhp/1]
root 14 2 0Aug18? 00:00:00[watchdog/1]
root 15 2 0Aug18? 00:00:00[migration/1]
root 16 2 0Aug18? 00:00:00[ksoftirqd/1]
alan 2050620496 010:39 pts/0 00:00:00bash
alan 20520 1454 010:39? 00:00:00 nginx: master process nginx
alan 2052120520 010:39? 00:00:00 nginx: worker process
alan 2052620506 010:39 pts/0 00:00:00manps
alan 2053620526 010:39 pts/0 00:00:00 pager
alan 2056420496 010:40 pts/1 00:00:00bash
위의 ps 명령 의 출력 에서 Nginx 프로 세 스 를 볼 수 있 습 니 다.이 명령 은 거의 300 줄 을 보 여 주 었 으 나, 나 는 이 예 에서 그것 을 단축 시 켰 다.300 줄 과정 정 보 를 처리 하려 는 시도 가 혼 란 스 러 웠 다 고 상상 할 수 있다.이 출력 을 grep 로 보 낼 수 있 습 니 다. nginx 만 표시 하 는 것 을 걸 러 낼 수 있 습 니 다.
alan@workstation:~$ ps-ef |grep nginx
alan 20520 1454 010:39? 00:00:00 nginx: master process nginx
alan 2052120520 010:39? 00:00:00 nginx: worker process
확실히 더 좋아 졌 다.우 리 는 Nginx 에 20520 과 20521 의 PID 가 있다 는 것 을 곧 볼 수 있다.
2. PGREP pgrep 명령 은 단독으로 grep 를 호출 하 는 데 발생 하 는 문 제 를 더욱 간소화 합 니 다.
alan@workstation:~$ pgrep nginx
20520
20521
하나의 위탁 관리 환경 에서 여러 사용자 가 서로 다른 Nginx 인 스 턴 스 를 실행 하고 있다 고 가정 합 니 다.- u 옵션 을 사용 하여 다른 사람 을 출력 에서 제외 할 수 있 습 니 다.
alan@workstation:~$ pgrep -u alan nginx
20520
20521
3、PIDOF
또 하 나 는 pidof 입 니 다.이 명령 은 다른 이름 의 프로 세 스 가 실행 되 고 있 더 라 도 특정 바 이 너 리 파일 의 PID 를 검사 합 니 다.예 를 들 기 위해 서 저 는 Nginx 를 두 번 째 디 렉 터 리 로 복사 하고 해당 경로 접두사 로 시작 합 니 다.현실 생활 에서 이 인 스 턴 스 는 서로 다른 위치 에 있 을 수 있 습 니 다. 예 를 들 어 서로 다른 사용자 가 가지 고 있 는 디 렉 터 리 등 입 니 다.Nginx 인 스 턴 스 를 두 개 실행 하면 pidof 출력 은 모든 프로 세 스 를 표시 합 니 다.
alan@workstation:~$ ps-ef |grep nginx
alan 20881 1454 011:18? 00:00:00 nginx: master process ./nginx -p /home/alan/web/prod/nginxsec
alan 2088220881 011:18? 00:00:00 nginx: worker process
alan 20895 1454 011:19? 00:00:00 nginx: master process nginx
alan 2089620895 011:19? 00:00:00 nginx: worker process
grep 나 pgrep 를 사용 하면 PID 숫자 를 표시 하지만 어떤 인 스 턴 스 가 어떤 인 스 턴 스 인지 알 수 없습니다.
alan@workstation:~$ pgrep nginx
20881
20882
20895
20896
pidof 명령 은 모든 특정한 Nginx 인 스 턴 스 의 PID 를 확인 하 는 데 사용 할 수 있 습 니 다.
alan@workstation:~$ pidof/home/alan/web/prod/nginxsec/sbin/nginx
2088220881
alan@workstation:~$ pidof/home/alan/web/prod/nginx/sbin/nginx
2089620895
4、TOP
top 명령 은 이미 오래된 역 사 를 가지 고 있 으 며, 실행 프로 세 스 의 세부 사항 을 보고 메모리 소 모 를 빠르게 식별 하 는 데 매우 유용 합 니 다.기본 보 기 는 다음 과 같 습 니 다.
top-11:56:28 up 1 day,13:37, 1 user, load average:0.09,0.04,0.03
Tasks:292 total, 3 running,225 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.1 us, 0.2 sy, 0.0 ni,99.7id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiBMem:16387132 total,10854648 free, 1859036 used, 3673448 buff/cache
KiBSwap: 0 total, 0 free, 0 used.14176540 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17270 alan 20 03930764247288 98992 R 0.7 1.5 5:58.22 gnome-shell
20496 alan 20 0 816144 45416 29844 S 0.5 0.3 0:22.16 gnome-terminal-
21110 alan 20 0 41940 3988 3188 R 0.1 0.0 0:00.17top
1 root 20 0 225564 9416 6768 S 0.0 0.1 0:10.72systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
4 root 0-20 0 0 0 I 0.0 0.0 0:00.00 kworker/0:0H
6 root 0-20 0 0 0 I 0.0 0.0 0:00.00 mm_percpu_wq
7 root 20 0 0 0 0 S 0.0 0.0 0:00.08 ksoftirqd/0
알파벳 s 와 원 하 는 업데이트 초 수 를 입력 하여 업데이트 간격 을 변경 할 수 있 습 니 다.예제 Nginx 프로 세 스 를 쉽게 감시 하기 위해 서 는 - p 옵션 을 사용 하고 PID 를 전달 하여 top 을 호출 할 수 있 습 니 다.이 출력 은 훨씬 깨끗 해 야 한다.
alan@workstation:~$ top -p20881 -p20882 -p20895 -p20896
Tasks: 4 total, 0 running, 4 sleeping, 0 stopped, 0 zombie
%Cpu(s): 2.8 us, 1.3 sy, 0.0 ni,95.9id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiBMem:16387132 total,10856008 free, 1857648 used, 3673476 buff/cache
KiBSwap: 0 total, 0 free, 0 used.14177928 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
20881 alan 20 0 12016 348 0 S 0.0 0.0 0:00.00 nginx
20882 alan 20 0 12460 1644 932 S 0.0 0.0 0:00.00 nginx
20895 alan 20 0 12016 352 0 S 0.0 0.0 0:00.00 nginx
20896 alan 20 0 12460 1628 912 S 0.0 0.0 0:00.00 nginx
프로 세 스, 특히 프로 세 스 를 종료 할 때 PID 를 정확하게 확인 하 는 것 이 중요 합 니 다.또한, 이러한 방식 으로 top 을 사용 하면 프로 세 스 중 하나 가 멈 추거 나 새로운 프로 세 스 가 시 작 될 때마다 top 은 새로운 프로 세 스 가 있 음 을 알려 야 합 니 다.
6. 프로 세 스 종료
1、KILL
재 미 있 는 것 은 stop 명령 이 없다 는 것 이다.Linux 에 kill 명령 이 있 습 니 다.kill 은 프로 세 스에 신 호 를 보 내 는 데 사 용 됩 니 다.가장 많이 사용 되 는 신 호 는 '종료' (SIGTERM) 나 '죽 이기' (SIGKILL) 다.하지만 더 많다.다음은 몇 가지 예 이다.전체 목록 은 kill - L 로 표시 할 수 있 습 니 다.
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
9 번 신 호 는 SIGKILL 입 니 다. 보통 kill - 9 20896 과 같은 명령 을 내 립 니 다.기본 신 호 는 15 입 니 다. SIGTERM 입 니 다.많은 응용 프로그램 들 이 자신의 정지 방법 을 가지 고 있다 는 것 을 기억 하 세 요.Nginx 는 stop 이나 reload 와 같은 - s 옵션 을 사용 하여 신 호 를 전달 합 니 다.일반적으로 나 는 응용 프로그램의 특정한 방법 으로 조작 을 멈 추 는 것 을 더 좋아한다.그러나, 나 는 kill 명령 으로 Nginx 프로 세 스 20896 을 멈 추고 pgrep 로 그것 이 멈 췄 는 지 확인 하 는 것 을 보 여 줄 것 이다.PID 20896 은 다시 나타 나 지 않 습 니 다.
alan@workstation:~$ kill -9 20896
alan@workstation:~$ pgrep nginx
20881
20882
20895
22123
2、PKILL
이름 으로 검색 할 수 있 기 때문에 pkill 명령 은 pgrep 와 유사 합 니 다.이것 은 pkill 을 사용 할 때 매우 조심해 야 한 다 는 것 을 의미한다.내 Nginx 예제 에서 만약 내 가 Nginx 인 스 턴 스 만 죽 이려 고 한다 면 나 는 그것 을 사용 하지 않 을 것 이다.나 는 Nginx 옵션 - s stop 을 특정한 인 스 턴 스 에 전달 하여 제거 할 수 있 거나, 나 는 grep 를 사용 하여 전체 ps 출력 을 걸 러 야 한다.
/home/alan/web/prod/nginx/sbin/nginx -s stop
/home/alan/web/prod/nginxsec/sbin/nginx -s stop
만약 내 가 pkill 을 사용 하고 싶다 면, 나 는 - f 옵션 을 포함 하여 pkill 이 전체 명령 행 인 자 를 걸 러 낼 수 있 습 니 다.이것 은 당연히 pgrep 에 도 적용 된다.그래서 pkill - f 를 실행 하기 전에 먼저 pgrep - a 로 확인 할 수 있 습 니 다.
alan@workstation:~$ pgrep -a nginx
20881 nginx: master process ./nginx -p /home/alan/web/prod/nginxsec
20882 nginx: worker process
20895 nginx: master process nginx
20896 nginx: worker process
나 도 pgrep - f 로 내 결 과 를 줄 일 수 있다.pkill 은 같은 인 자 를 사용 하면 프로 세 스 를 중단 합 니 다.
alan@workstation:~$ pgrep-f nginxsec
20881
alan@workstation:~$ pkill-f nginxsec
pgrep (특히 pkill) 이 기억 해 야 할 관건 은 검색 결과 의 정확성 을 항상 확보 해 야 합 니 다. 그러면 본의 아니 게 잘못된 프로 세 스 에 영향 을 주지 않 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.