>시스템 튜토리얼 >리눅스 >Linux에서 백그라운드 작업의 신비로운 세계를 탐험해보세요

Linux에서 백그라운드 작업의 신비로운 세계를 탐험해보세요

WBOY
WBOY앞으로
2024-02-12 14:06:221440검색

Linux 운영 체제(백그라운드 실행)의 신비한 세계를 탐험해 보세요. 일상적인 사용에서는 현재 작업에 영향을 주지 않고 백그라운드에서 자동으로 작업을 실행하기 위해 백그라운드 실행을 사용해야 하는 경우가 많습니다. 그렇다면 Linux에서 백그라운드 작업을 구현하는 방법은 무엇입니까?

생각

우선, 터미널을 직접 닫을 때 백그라운드 프로그램이 종료되는 이유는 무엇입니까? 터미널을 직접 닫으면 터미널이 현재 환경에서 시작된 백그라운드 작업에 SIGHUP 신호를 보내기 때문입니다. , 실행 중인 프로그램이 중단됩니다. 그런 다음 SIGHUP을 무시하세요.

nohup

가장 일반적으로 사용되는 명령은 [nohup]입니다. 명령 실행을 일시 중단할지, 터미널을 닫을지, 계정에서 로그아웃할지 알 수 있습니다. &] 기호입니다.

사용법: nohup 명령 [ Arg … ] [ & ] 探秘 Linux 中的神秘后台运行世界아아아아

위에서 볼 수 있듯이 우리가 실행하고 있는 test.sh의 상위 프로세스는 [PID 1].이 되어 Linux 메인 프로세스에 의해 인계됩니다.

setsid

nohup은 SIGHUP 신호를 무시하는 것인데, 다른 아이디어는 없나요?

setip 명령은 세션을 다시 열고, 상위 프로세스 그룹의 ID를 상속하고, 상위 프로세스의 제어를 벗어날 수 있습니다. 아래 그림에서 볼 수 있듯이 test.sh 스크립트의 상위 프로세스는 이미 init 1로 되어 있습니다. 이때 터미널을 닫거나 종료해도 백그라운드 프로그램과는 아무런 관련이 없습니다.

으아아아 探秘 Linux 中的神秘后台运行世界

setsid와 nohup의 또 다른 차이점은 & 배경 기호를 사용할 필요가 없다는 것입니다.

퇴장

exit 명령을 사용하여 터미널을 종료해도 프로그램은 계속 실행됩니다. 왜 그럴까요?

exit 명령을 사용하여 터미널을 종료하면 해당 터미널이 속한 작업으로 SIGHUP 신호가 전송되지 않기 때문입니다. huponexit 구성 항목에 의해 제어되므로 shopt 명령을 사용하면 됩니다. 그것을 보세요.

探秘 Linux 中的神秘后台运行世界아아아아

huponexit를 on으로 구성하고 종료 명령을 다시 사용하면 해당 작업이 그에 따라 종료됩니다.

으아아아

트랩

trap 명령은 Linux에 내장된 명령으로, 지정된 신호를 수신할 때 수행할 작업과 처리할 신호의 이름이 뒤따릅니다.

探秘 Linux 中的神秘后台运行世界

스크립트를 백그라운드로 설정해야 하고 터미널이 프로그램을 종료하거나 닫는 것을 원하지 않는 경우 스크립트에 트랩 명령을 추가하여 SIGHUP 신호를 무시할 수 있습니다(프로세스 중단).

으아아아

Linux 화면 명령은 다중 창 관리 프로그램에 사용되며 터미널을 생성하고 그 안에서 프로그램을 실행할 수 있습니다

探秘 Linux 中的神秘后台运行世界아아아아

예에서 볼 수 있듯이 테스트 스크립트의 상위 프로세스는 스크린 터미널 프로세스이고, 스크린 터미널의 상위 프로세스 PID1도 백그라운드 프로세스의 실행을 완료합니다.

간단히 말하면, 백그라운드에서 실행하는 것은 Linux에서 매우 일반적이고 실용적인 기술입니다. 서버 측에서 일부 백그라운드 서비스를 수행하든, 개인용 컴퓨터에서 일부 장기 실행 작업을 완료하든, 백그라운드 작업은 효율성을 높이고 일상 작업을 용이하게 하는 데 도움이 될 수 있습니다.

위 내용은 Linux에서 백그라운드 작업의 신비로운 세계를 탐험해보세요의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 lxlinux.net에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제