processes unix process control
Unix의 프로세스 관리 :
Unix에서는 커널 외부의 모든 명령이 프로세스 컨텍스트에서 실행됩니다.
프로세스는 일련의 명령이며 각 프로세스에는 관련된 제어 데이터 블록이 있습니다. 프로세스는 파일을 조작하는 방법과 유사한 방식으로 조작 할 수 있습니다.
예를 들어, 'ls'를 사용하여 파일 목록을 볼 수 있고, 'ps'를 사용하여 프로세스 목록을 볼 수 있습니다.
Unix 비디오 # 23 :
최고의 mp3 음악 다운로더는 무엇입니까
이 자습서에서는 저장되는 프로세스 관련 정보를 다루고 프로세스를 관리하는 데 사용되는 일부 명령도 설명합니다. 또한 명령 스크립트를 디버깅하는 방법에 대한 간략한 설명도 제공합니다.
학습 내용 :
유닉스 프로세스 정보
프로세스 테이블에는 현재 실행중인 모든 프로세스에 대한 정보가 포함됩니다. 이 표의 주요 목적은 실행중인 모든 프로세스를 효과적으로 관리하는 것입니다.
노트 : 다중 작업 및 다중 사용자 OS로서 Unix는 동시에 많은 프로세스를 실행합니다.
테이블에는 다음과 같은 정보가 포함됩니다.
- 프로세스 ID
- 상위 프로세스 ID
- 프로세스 상태
- CPU 사용량
Unix의 프로세스는 다양한 상황에 따라 다양한 상태를 거칩니다. 상태 변경은 프로세스가 읽기 또는 쓰기 작업이 완료 될 때까지 기다려야하는지 또는 더 긴급한 다른 프로세스가 실행될 기회를 제공해야하는지 여부에 따라 트리거 될 수 있습니다.
공정 제어 명령
프로세스를 검토하고 조작하는 데 사용할 수있는 많은 명령이 있습니다. ‘ps’명령을 사용하여 프로세스 상태 정보를 볼 수 있습니다.
명령 | ps-현재 실행중인 모든 프로세스에 대한 정보를 제공합니다. |
---|---|
일반적인 구문 | $ ps (옵션) |
예 1 | $ ps PID, 터미널 이름, 생성 시간 및 프로세스 이름을 포함하여 프로세스에 대한 정보를 제공합니다. |
이전 튜토리얼에서 설명한 것처럼 프로세스는 포 그라운드, 백그라운드 또는 데몬으로 분류 될 수 있습니다. 터미널에서 명령이 실행되면 포 그라운드에서 정상적으로 실행됩니다. 백그라운드에서 프로세스를 실행하려면 명령 끝에있는‘&’버튼을 사용할 수 있습니다.
예:
$ grep “how” file1 > file2 &
이 명령은 'how'패턴이 포함 된 행을 검색하고 출력을 file2에 저장합니다. file1이 상당히 큰 경우 다른 작업을 진행하고이 명령을 백그라운드에서 실행하는 것이 좋습니다. 끝에‘&’가 있으면이 명령은 백그라운드에서 프로세스로 실행됩니다.
‘^ Z’명령을 사용하여 포 그라운드 프로세스를 일시 중단 할 수 있습니다. 이 명령은 현재 포 그라운드 프로세스를 백그라운드에서 일시 중지 된 상태로 이동합니다. 여기서 프로세스는‘bg’명령을 사용하여 백그라운드에서 재개하도록 푸시하거나‘fg’명령을 사용하여 포 그라운드로 다시 가져올 수 있습니다.
각 프로세스는 우선 순위와도 연결됩니다. 이는 OS가 다양한 처리 작업에 시간을 공정하게 할당 할 수 있도록하는 데 사용됩니다. 'nice'명령은 프로세스의 우선 순위를 낮추는 데 사용할 수 있으므로 다른 프로세스에 대해 'nice'가 될 수 있습니다.
$ 좋은
이 줄은 지정된 명령을 더 낮은 우선 순위로 실행합니다. 기본적으로 우선 순위는 10 씩 감소합니다. 또한 명령은 다른 수준의 'niceness'를 사용하는 데 사용할 수있는 매개 변수를 사용합니다.
예:
최고의 하드 드라이브 데이터 복구 서비스
$ nice -20 ls
이 명령은 우선 순위가 20 감소 된 상태로‘ls’를 실행합니다.
부정적인 '좋음'으로 우선 순위를 높일 수도 있습니다. 그러나 이것은 수퍼 유저 권한이 필요합니다.
터미널 또는 로그인 세션이 닫히면 SIGHUP 신호를 자식 프로세스로 보냅니다. 기본적으로이 신호로 인해 자식 프로세스가 종료됩니다. ‘nohup’명령을 사용하면 로그인 세션이 종료 된 경우에도 명령을 계속 실행할 수 있습니다.
예:
$ nohup soft file1 > file2
이 명령을 사용하면 시스템에서 로그 아웃 한 경우에도 file1 정렬 및 file2 프로세스에 저장이 계속됩니다.
권한에 따라 'kill'명령을 사용하여 모든 프로세스를 종료 할 수 있습니다.
예:
$ kill (options)
이 명령은 프로세스 ID가있는 프로세스를 종료합니다. 프로세스의 PID는‘ps’명령을 사용하여 얻을 수 있습니다.
이 'at'명령은 미래의 특정 날짜와 시간에 명령을 실행하는 데 사용됩니다.
예:
$ at 8pm sort file1>file2
Unix 디버깅
Unix는 명령 스크립트에서 버그를 찾는 데 도움이되는 여러 메커니즘을 제공합니다. 이러한 메커니즘을 사용하여 실행중인 항목의 추적, 즉 명령이 실행되는 순서를 볼 수 있습니다. 추적은 스크립트의 논리 및 제어 흐름을 이해하고 확인하는 데 사용할 수 있습니다.
=> -v 설정
상세 모드 : 명령을 실행하기 전에이 옵션을 설정하면 실행될 명령이 실제로 실행되기 전에 stdout에 인쇄됩니다.
=> -x 설정
실행 추적 모드 : 이 옵션을 설정하면 인수와 함께 실행되는 각 명령이 표시됩니다.
=> -n 설정
비 실행 모드 : 이 옵션을 설정하면 실제로 명령을 실행하지 않고 오류가 표시됩니다.
자세한 내용은 다음 튜토리얼을 확인하십시오. 고급 셸 스크립팅.