728x90
백그라운드에서 작업 실행
이 기사에서는 UNIX의 백그라운드에서 작업을 실행하는 방법을 배울 것입니다. 멀티태스킹 시스템에서 사용자는 한 번에 여러 프로세스(작업)를 실행할 수 있습니다.
- 포그라운드에서 하나의 작업만 실행되므로 다른 모든 작업은 백그라운드에서 실행됩니다(따라서 나머지 잽은 백그라운드에서 실행되어야 함).
- UNIX에서는 쉘 명령 & (AND)와 nohup 명령을 사용하여 백그라운드에서 작업을 실행할 수 있습니다.
&: 로그아웃 없음
- 여기서 & (AND) 연산자는 백그라운드에서 작업을 실행하는 데 사용되지만 세션이 닫히면 프로세스가 자동으로 종료된다는 것을 의미하는 로그 아웃 안전이 없습니다.
참고: 초기에는 컴퓨터에 GUI(그래픽 사용자 인터페이스)가 없는 터미널만 있었습니다. 따라서 사용자는 터미널을 통해 시스템에 로그인해야 하며, 이 로그인을 세션이라고 합니다.
<UNIX COMMAND> &
bennison@yavar:~$ sort -o test.txt test.txt &
[1] 20269
[1]+ Done sort -o test.txt test.txt
bennison@yavar:~$
- 정렬 명령이 하는 일은 ASCII 값을 기반으로 파일의 데이터를 정렬하는 것입니다. 여기서 -o(옵션)는 출력을 다른 파일에 쓰는 데 사용됩니다.
- & (AND) 연산자 다음에 명령을 실행하면 해당 프로세스가 백그라운드에서 실행되기 시작합니다 (포 그라운드가 아님). 터미널에서 해당 작업의 PID를 보여줍니다.
- 작업(프로세스)이 백그라운드에서 실행될 때 프로세스의 PID를 인쇄하고 프롬프트가 즉시 반환됩니다.
- 백그라운드 작업 표준 오류 메시지는 터미널에 표시되거나 표시되지 않을 수 있으며 기본적으로 사용 중인 셸에 따라 다릅니다.
- 이렇게 하면 백그라운드에서 우선 순위가 낮은 작업을 실행하고 포그라운드에서 가장 우선 순위가 높은 작업을 실행할 수 있습니다.
nohup: 안전하게 로그아웃
- 사용자가 로그아웃할 때 백그라운드 작업을 백그라운드에서 실행해야 하는 경우. 쉘 프로세스가 종료되면 모든 하위 프로세스가 자동으로 종료됩니다 (기본적으로 사용자가 로그 아웃 할 때 발생합니다).
- 로그 아웃을 사용하여 백그라운드에서 작업을 안전하게 실행하려면 접두사 nohup (no hangup)과 접미사 &(AND)를 사용하여 명령을 실행해야합니다.
nohup sort test.txt &
bennison@yavar:~$ nohup sort test.txt &
[1] 35853
nohup: appending output to 'nohup.out'
[1]+ Done nohup sort test.txt
bennison@yavar:~$
- 이번에도 쉘은 작업(프로세스)의 PID를 반환합니다.
- nohup은 명령의 표준 출력을 nohup.out 파일에 저장(추가)합니다.
- 이제 사용자가 로그 아웃 할 때 프로세스가 백그라운드에서 어떻게 실행될 수 있는지 질문 할 수 있습니다. nohup과 함께 명령을 실행하면 커널은 작업의 PPID를 모든 셸의 상위 인 시스템 초기화 프로세스 ()에 다시 할당합니다.PID 1
- 이런 식으로, nohup과 함께 실행되는 프로세스의 혈통을 인수합니다.init process
728x90
'프로그래밍 > 리눅스' 카테고리의 다른 글
프로그래밍 「 리눅스 편」우분투를 통한 리눅스 민트 (0) | 2023.06.13 |
---|---|
프로그래밍 「 리눅스 편」소프트웨어 엔지니어를 위한 필수 Linux 및 Unix 명령 및 도구 (0) | 2023.06.13 |
프로그래밍 「 리눅스 편」docker를 사용하여 홈랩에서 Jellyfin 미디어 서버 설정 (0) | 2023.06.13 |
프로그래밍 「 리눅스 편」Git Magic: GitHub 및 Git 파일 시스템 풀기 (0) | 2023.06.13 |
프로그래밍 「 리눅스 편」DevOps를 위한 Slack 워크플로 예시 (0) | 2023.06.13 |