- -Linux에서 일시 중단 및 재개시 스크립트 및 명령 실행 방법

Linux에서 일시 중단 및 재개시 스크립트 및 명령 실행 방법

스크립트와 명령을 실행하는 가장 좋은 방법일시 중단 (또는 재개 후)은 systemd init 시스템을 사용하는 것입니다. 이것은 init 시스템이 커널 및 전원 시스템과 직접 상호 작용하기 때문입니다. 이 도구를 사용하는 법을 배우면 모든 사용자가 Linux 운영 체제를 많이 제어 할 수 있습니다.

init을 망친다는 것을 이해하십시오수행중인 작업을 모르면 PC의 시스템이 위험 할 수 있습니다. 가능한 실수를 피하기 위해이 자습서의 지침을 최대한 밀접하게 따르십시오.

모든 최신 Linux 배포판이시스템화 된 초기화 시스템. 일부는 시작 또는 다른 것을 완전히 사용합니다. 이 자습서에서는 가장 일반적인 시작 시스템이므로 systemd에 중점을 둘 것입니다. 이 기사에서 다루지 않은 내용으로이 작업을 수행하려면 운영 체제 설명서를 참조하십시오.

참고 : 데비안 사용자는 모든 인스턴스를 교체해야합니다. usr / lib / systemd / system-sleep/ lib / systemd / system-sleep /

일시 중단 전에 명령 실행

일시 중단하기 전에 스크립트를 실행하려면 bash 스크립트 파일을 / usr / lib / systemd / system-sleep / 예배 규칙서. 스크립트 자체는 무엇이든 할 수 있지만 반드시 준수해야 할 특정 구문이 있습니다. 터미널 창을 열어 시작하십시오. sudo -s를 사용하여 루트 쉘을 얻습니다.

다음으로 system-sleep 디렉토리 내에서 nano text editor를 실행하십시오 :

nano /usr/lib/systemd/system-sleep/pre-suspend.sh

스크립트 시작 부분에 shebang을 추가하십시오. 이것을 추가하는 것이 중요하며, 통역사가 없으면 코드와 명령을 올바르게 읽을 수 없습니다.

#!/bin/bash/

스크립트의 다음 부분은“if”입니다. 이렇게하면 전원 제어 시스템에 시스템이 "일시 정지되어 중단 될 예정이면 어떤 일이 발생해야합니다"라고 알립니다. 아래 코드를 붙여 넣습니다.

if [ "${1}" == "pre" ]; then
sh /path/to/script/to/run.sh

변화 sh /path/to/script/to/run.sh 시스템이 중단되기 직전에 Linux PC (또는 서버)에서 실행하고 싶은 스크립트로 “if”바로 다음 줄은 반드시 입력 할 필요는 없습니다. sh /path/to/script/to/run.sh. 이를 사용하여 다양한 명령을 실행할 수도 있습니다. bash가 명령으로 인식 할 수있는 한 실행됩니다.

“일시 중단 전”스크립트의 마지막 부분은“else if”부분을 추가하는 것입니다. 이 예에서는 무언가를하는 것에 대해 걱정하기 때문에 스크립트의이 부분은 수정할 필요가 없습니다. 전에 시스템이 다시 시작될 때가 아니라 종료됩니다.

elif [ "${1}" == "post" ]; then
# nothing goes here
fi

파일에 모든 것이 추가되면 Ctrl + O 나노를 저장합니다.

재개 후 명령 실행

재개 후 명령을 실행하면 다음과 같이 작동합니다.일시 중단하기 전에 무언가를 실행. 유일한 차이점은 스크립트의 "if"부분 다음에 명령을 추가하는 대신 "elif"행 다음에 코드의 가장 중요한 부분을 발생시키는 것입니다.

이력서 후 스크립트를 작성하려면 먼저 shebang을 첫 번째 행으로 추가하십시오.

#!bin/bash

다음 줄에서 스크립트의 "if"부분을 추가하십시오.

if [ "${1}" == "pre" ]; then
# nothing goes here

이 코드를 bash 스크립트에 붙여넣고 아래로 이동하여 "else if"섹션을 붙여 넣습니다.

elif [ "${1}" == "post" ]; then
sh /path/to/script/to/run.sh
fi

다시 한번“elif”줄 아래에 아무 것도 쓰면됩니다. 시스템이 정상적인 명령 작업이고 bash가 실행하는 한.

시작 및 재개시 명령 실행

두 개의 반대 명령을 실행하려면 하나일시 중단하기 전에, 그리고 다시 시작할 때 하나 가능합니다. 스크립트를 사용자 정의하고 "if"줄과 "elseif"줄 아래에 줄을 추가하는 것을 의미합니다.

평소처럼 통역을 위해 스크립트에 shebang을 게시하여 시작하십시오.

#!/bin/bash

그런 다음 코드의 if 섹션을 붙여 넣습니다.

if [ "${1}" == "pre" ]; then
# replace with command

if에서 "# replace with command"를 시스템이 다운되기 직전에 실행하려는 명령으로 바꿉니다. 그런 다음 "elif"섹션으로 이동하여 동일한 작업을 수행하십시오.

elif [ "${1}" == "post" ]; then
#  replace with command
fi

Ctrl + O를 사용하여 파일을 저장하십시오.

권한 업데이트 및 스크립트 사용

필요한 모든 명령이 스크립트 파일 안에 있지만 실행하기 전에 권한을 업데이트해야합니다. 터미널을 열고 su 또는 sudo -s를 사용하여 루트를 얻습니다. 그런 다음 수행하십시오.

chmod +x /usr/lib/systemd/system-sleep/pre-suspend.sh

이제부터 일시 중단 또는 재개 할 때마다 스크립트 내부의 사용자 정의 명령이 실행됩니다.

참고 : systemd system-sleep에 대해 궁금한 점이 있습니까? 설명서를 확인하십시오 man systemd-suspend.service.

코멘트