50% 할인 모든 계획, 제한된 시간. 시작 시간 $2.48/mo
8분 남음
서버 및 OS

Linux에서 nohup 명령이 작동하는 방식 – 구문, 사용 사례 및 예

에이다 러브굿 By 에이다 러브굿 8분 읽기 2024년 7월 14일 업데이트됨
nohup 명령

Linux 개발자라면 세션의 일관성과 안정성이 얼마나 중요한지 알고 계실 것입니다. Linux에서 장기 실행 프로세스는 세션에서 로그아웃한 후에도 계속되어야 합니다. 다행히도 Linux에는 이러한 목적을 위한 기능적 명령이 있습니다. 그만큼 nohup 명령 백그라운드에서 명령을 중단 없이 실행할 수 있습니다. 이렇게 하면 데이터 손실을 방지하고 귀중한 시간을 절약할 수 있습니다. 이 가이드는 구문 및 옵션부터 실제 예제 및 일반적인 오류 문제 해결에 이르기까지 Linux nohup 명령에 대해 알아야 할 모든 것을 안내합니다.

Linux nohup 구문 이해

nohup 명령은 사용하기 쉽고 간단합니다. 이를 통해 백그라운드에서 명령이나 스크립트를 실행할 수 있으므로 터미널에서 로그아웃한 후에도 계속해서 실행됩니다. 사용 방법은 다음과 같습니다.

nohup [command] [arguments] &

당신은 교체해야 [명령] 실행하려는 명령이나 스크립트를 사용하세요. 그리고 [논쟁] 명령에 필요한 인수 또는 옵션입니다. 그만큼 & 기호는 백그라운드에서 실행하라는 명령을 보냅니다. 예를 살펴보겠습니다:

nohup myscript.sh &

이 예에서는 myscript.sh 터미널을 닫아도 계속 실행되는 bash 스크립트입니다. 출력은 다음 이름의 파일로 리디렉션됩니다. nohup.out 다른 경로를 지정하지 않는 한 기본적으로.

nohup 옵션 탐색

nohup 명령 자체에는 많은 옵션이 없지만 다양한 명령 및 리디렉션 기술과 함께 효과적으로 사용하는 방법을 이해하면 성능을 향상시킬 수 있습니다. 먼저 nohup 명령에 대한 정보를 얻는 방법을 살펴보겠습니다.

nohup –-help 
nohup --version

이 두 명령은 도움말 메시지와 nohup 버전을 표시하여 유용한 정보를 제공합니다.

nohup 명령을 사용하여 프로세스 실행

nohup 명령을 사용하여 프로세스를 실행하려면 마지막 섹션에서 설명한 것과 동일한 구조를 따르면 됩니다.

nohup [command]

백그라운드에서 프로세스를 실행하려면 다음을 추가하십시오. & 당신의 명령이 끝날 때까지.

nohup 명령을 사용하여 백그라운드에서 여러 프로세스 실행

이제 nohup 명령을 사용하여 백그라운드에서 둘 이상의 프로세스를 실행하려면 어떻게 해야 할까요?

nohup bash -c '[command A] && [command B]' &

바꾸다 [명령어 A] 그리고 [명령 B] 백그라운드에서 실행하려는 명령을 사용합니다. 먼저 시스템 패키지를 업데이트한 다음 불필요한 파일을 정리하고 nohup 명령을 사용하여 이 작업을 수행한다고 가정해 보세요.

nohup bash -c 'sudo apt-get update && sudo apt-get autoremove -y' &

이 예에서는 안돼 업데이트 및 정리 프로세스가 모두 백그라운드에서 계속 실행될 수 있습니다. 따라서 터미널을 열어두지 않고도 시스템 유지 관리 작업이 완료됩니다.

사용자 정의 출력 리디렉션

이 프로세스의 출력은 다음으로 리디렉션됩니다. nohup.out 기본적으로. 하지만 다른 경로로 출력을 받고 싶다면 어떻게 해야 할까요? 그렇게 하는 방법은 다음과 같습니다.

nohup [command] > [/path/to/new/output.txt]

다음의 값을 바꾸는 것을 잊지 마세요. [] 원하는 명령과 파일 경로로.

nohup을 다른 명령과 결합하기

nohup은 다른 명령 및 파이프와 결합하여 강력한 명령 체인을 만들 수 있습니다. 이에 대한 예를 살펴보겠습니다.

nohup find / -name "*.log" | xargs grep "ERROR" > error_logs.txt 2>&1 &

여기서는 찾다 명령은 로그 파일을 검색하는 데 사용되며 grep "ERROR"라는 용어를 검색하는 데 사용됩니다. 결합된 출력은 다음으로 리디렉션됩니다. error_logs.txt.

이 섹션에서는 nohup 명령의 가장 일반적인 옵션과 사용 사례를 다루었습니다. 이 지침을 숙지하면 백그라운드에서 Linux 프로세스를 실행하기 위해 nohup을 효과적으로 사용할 수 있습니다.

일반적인 오류 및 문제 해결

nohup 명령을 사용하는 것은 일반적으로 간단하지만 프로세스 중에 몇 가지 일반적인 오류가 발생할 수 있습니다. 이러한 오류를 이해하고 문제를 해결하는 방법을 알면 시간과 좌절을 줄일 수 있습니다. 그럼 이러한 일반적인 오류가 무엇인지, 어떻게 탐색하는지 살펴보겠습니다.

권한이 거부되었습니다

이 오류는 실행하려는 스크립트나 명령에 실행 권한이 없을 때 발생합니다. 오류 출력은 다음과 같습니다. nohup: 'myscript.sh' 명령을 실행하지 못했습니다: 권한이 거부되었습니다.

이 문제를 해결하려면 스크립트나 명령에 올바른 권한이 있는지 확인해야 합니다. 다음을 사용하여 실행 권한을 추가할 수 있습니다. chmod 명령:

chmod +x myscript.sh 
nohup ./myscript.sh &

명령을 찾을 수 없음

이 오류는 명령이나 스크립트가 지정된 위치에 없거나 PATH에서 사용할 수 없는 경우 발생합니다. 오류 출력은 다음과 같습니다. nohup: 'myscript.sh' 명령을 실행하지 못했습니다. 해당 파일이나 디렉터리가 없습니다.

이 오류를 해결하려면 명령이나 스크립트가 존재하고 올바른 디렉터리에 있는지 확인해야 합니다. 스크립트에 절대 경로를 제공해야 할 수도 있습니다.

nohup /path/to/myscript.sh &

또한 해당 명령이 PATH에 설치되어 있고 사용 가능한지 확인하십시오.

출력 없음

때로는 터미널이나 출력 파일에 출력이 없는 것을 확인할 수 있습니다. 명령이 출력을 생성하지만 표시되지 않는 경우 기본 파일이 아닌 다른 경로로 리디렉션되거나 파일 권한에 문제가 있을 수 있습니다. 이 문제를 해결하려면 출력 파일이 올바르게 리디렉션되도록 명시적으로 지정해야 합니다.

nohup myscript.sh > output.log 2>&1 &

예를 들어, 이 명령은 표준 출력과 표준 오류를 모두 output.log.

스크립트가 백그라운드에서 실행되지 않음

때로는 스크립트나 명령이 실행 중인 것처럼 보이지만 백그라운드에서는 실행되지 않는 경우가 있습니다. 그 이유는 대개 간단합니다. 추가하는 것을 잊었을 수도 있습니다. & 명령 끝에 기호를 붙여 백그라운드에서 실행합니다. 해결책도 간단합니다. 해당 내용을 추가했는지 확인하고 진행하세요.

응답하지 않거나 응답하지 않는 프로세스

nohup으로 시작된 프로세스가 중단되거나 응답하지 않을 수 있습니다. 이는 프로세스가 입력을 기다리고 있거나 액세스하려는 리소스에 문제가 있는 경우 발생할 수 있습니다. 이 문제에 대한 두 가지 해결책이 있습니다.

  • 필수 입력 확인: 명령에 대화형 입력이 필요하지 않은지 확인하십시오.
  • 자원 문제: 명령이 필요한 리소스(예: 파일, 네트워크)에 액세스할 수 있는지 확인하십시오.

nohup.out 덮어쓰기

nohup 명령을 사용하여 백그라운드에서 여러 프로세스를 실행하는 경우 의도치 않게 nohup.out 파일. 이 문제를 방지하려면 각 프로세스에 대해 특정 경로를 선택할 수 있습니다. 이렇게 하면 각 프로세스마다 고유한 출력 파일이 있고 기본 경로를 덮어쓰지 않습니다.

일반적인 nohup 오류와 해결 방법에 대해 알아보면 nohup 명령을 문제 없이 사용할 수 있습니다.

결론

nohup 명령은 로그아웃 후에도 프로세스가 계속 실행되도록 보장하므로 백그라운드에서 프로세스를 실행해야 하는 Linux 사용자에게 유용한 도구입니다. 이 가이드에서는 기본 구문을 다루고, 다양한 옵션을 살펴보고, 문제 해결 팁과 함께 일반적인 오류에 대해 논의했습니다. nohup 명령을 익히면 장기 실행 작업을 효율적으로 관리할 수 있어 생산성과 시스템 관리 기술이 향상됩니다.

Linux 경험을 극대화하려는 Linux 개발자라면 안정적인 Linux로 업그레이드하는 것을 고려해 보십시오. 리눅스 VPS. 당사의 클라우드 기반 VPS 서비스는 연중무휴 24시간 지원과 99.95% 가동 시간 보장을 제공하므로 귀하의 애플리케이션이 항상 원활하게 실행되고 하루 중 언제든지 도움을 받을 수 있습니다. 강력한 인프라와 안정적인 리소스를 갖춘 VPS는 Linux 프로그래머의 요구 사항을 충족하도록 설계되었습니다. 또한 선호하는 Linux 배포판을 미리 설치할 수 있으므로 설치가 빠르고 쉽습니다. 필요한 성능과 유연성을 제공하는 VPS를 통해 Linux 프로젝트를 한 단계 더 발전시키세요.

FAQ

차이점은 무엇 입니까? 안돼 그리고 &?

안돼 사용자가 로그아웃할 때 프로세스가 종료되는 것을 방지합니다. & 백그라운드에서 프로세스를 실행합니다. 사용 안돼 로그아웃 후에도 프로세스가 계속되도록 보장하고 이를 다음과 결합합니다. & 백그라운드에서 실행될 수 있도록 해줍니다.

nohup을 사용하는 이유는 무엇입니까?

안돼 사용자가 로그아웃하거나 터미널을 닫은 후에도 명령이나 스크립트가 계속 실행되도록 하는 데 사용됩니다. 이는 사용자 개입 없이 활성 상태를 유지해야 하는 장기 실행 프로세스에 필수적입니다.

nohup out 파일이 뭔가요?

그만큼 nohup.out file은 nohup이 명령의 표준 출력 및 표준 오류를 리디렉션하는 기본 출력 파일입니다. 다른 출력 파일이 지정되지 않으면 명령의 출력은 다음 위치에 저장됩니다. nohup.out 현재 디렉토리에 있습니다.

공유하다

블로그에서 더 보기

계속 읽어보세요.

Cosmos Cloud로 실행할 수 있는 최고의 자체 호스팅 앱 Cosmos 대시보드 주변에 앱 패널이 있는 표지 이미지입니다.
서버 및 OS

Cosmos Cloud로 실행할 수 있는 최고의 셀프 호스팅 앱: 파일, 미디어, 비밀번호, 자동화 등!

어쩌면 Cosmos Cloud를 설정했는데 이제 어떤 앱이 이에 잘 어울리는지 확인하고 싶을 수도 있고, 아직 Cosmos를 결정하지도 않았는데 업무 환경에 얼마나 잘 맞는지 확인하고 싶을 수도 있습니다.

닉 실버닉 실버 16분 읽기
Docker 앱 관리를 위한 Portainer 및 Cosmos Cloud는 하이브리드 설정 다이어그램과 네온 옵스 및 액세스 블록을 다룹니다.
서버 및 OS

Portainer vs Cosmos Cloud: Docker 앱 관리에 가장 적합

이미 Docker를 알고 있고 점점 늘어나는 앱 스택을 더 깔끔하게 실행하는 방법을 원한다면 Portainer와 Cosmos Cloud에 대한 짧은 답변을 참조하세요. Portainer는 다이렉트에 대한 더 강력한 선택입니다.

닉 실버닉 실버 14분 읽기
하나의 추상 클라우드 네트워크 세계 내에서 세 가지 자체 호스팅 경로를 보여주는 Cosmos Cloud, CasaOS, Umbrel 기능 그래픽입니다.
서버 및 OS

Cosmos Cloud vs CasaOS vs Umbrel: 귀하의 설정에 적합한 자체 호스팅 플랫폼은 무엇입니까?

짧은 대답은 CasaOS가 여전히 시작하기 가장 쉬운 곳이고, Umbrel이 가장 깔끔하게 선별된 느낌을 갖고 있으며, 도메인에 대한 더 엄격한 제어를 원할 경우 Cosmos Cloud가 더 적합하다는 것입니다.

닉 실버닉 실버 11분 읽기

배포할 준비가 되셨나요? 월 $2.48부터

2008년부터 독립 클라우드. AMD EPYC, NVMe, 40Gbps. 14일 환불.