재부팅 또는 시작 중에 명령 / 스크립트를 자동 실행하는 방법


저는 Linux 시스템을 부팅하고 로그온 할 때 뒤에서 일어나는 일에 항상 매료됩니다. 베어 메탈의 전원 버튼을 누르거나 가상 머신을 시작하면 시스템이 완전히 작동하도록하는 일련의 이벤트가 실행됩니다 (때로는 1 분 미만). 로그 오프 및/또는 시스템 종료시에도 마찬가지입니다.

이것을 더 흥미롭고 재미있게 만드는 것은 운영 체제가 부팅 할 때와 로그온 또는 로그 아웃 할 때 특정 작업을 실행하도록 할 수 있다는 사실입니다.

이 distro-agnostic 기사에서 우리는 Linux에서 이러한 목표를 달성하기위한 전통적인 방법에 대해 논의 할 것입니다.

참고 : 로그온 및 로그 아웃 이벤트의 기본 셸로 Bash를 사용한다고 가정합니다. 다른 방법을 사용하면 이러한 방법 중 일부가 작동하거나 작동하지 않을 수 있습니다. 확실하지 않은 경우 셸 설명서를 참조하십시오.

재부팅 또는 시작 중에 Linux 스크립트 실행

시작하는 동안 명령을 실행하거나 스크립트를 실행하는 두 가지 일반적인 방법이 있습니다.

일정을 나타내는 데 널리 사용되는 일반적인 형식 (분/시간/일/월/요일) 외에도 cron 스케줄러는 @reboot 의 사용을 허용합니다. 이 지시문과 스크립트의 절대 경로는 시스템이 부팅 될 때 실행되도록합니다.

그러나이 접근 방식에는 두 가지주의 사항이 있습니다.

  1. a) the cron daemon must be running (which is the case under normal circumstances), and
  2. b) the script or the crontab file must include the environment variables (if any) that will be needed (refer to this StackOverflow thread for more details).

이 방법은 시스템 기반 배포에도 유효합니다. 이 메서드가 작동하려면 다음과 같이 /etc/rc.d/rc.local 에 실행 권한을 부여해야합니다.

# chmod +x /etc/rc.d/rc.local

파일 하단에 스크립트를 추가하십시오.

다음 이미지는 cron 작업과 rc를 사용하여 두 개의 샘플 스크립트 ( /home/gacanepa/script1.sh /home/gacanepa/script2.sh )를 실행하는 방법을 보여줍니다. "로컬 및 각각의 결과.

#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
#!/bin/bash
SITE="Tecmint.com"
DIR=/home/gacanepa
echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

두 스크립트 모두 이전에 실행 권한을 부여 받아야합니다.

$ chmod +x /home/gacanepa/script1.sh
$ chmod +x /home/gacanepa/script2.sh

로그온 및 로그 아웃시 Linux 스크립트 실행

로그온 또는 로그 아웃시 스크립트를 실행하려면 각각 ~ .bash_profile ~ .bash_logout 을 사용하십시오. 대부분의 경우 후자의 파일을 수동으로 만들어야합니다. 이전과 동일한 방식으로 각 파일의 맨 아래에 스크립트를 호출하는 줄을 놓기 만하면 바로 사용할 수 있습니다.

이 기사에서는 재부팅, 로그온 및 로그 아웃시 스크립트를 실행하는 방법을 설명했습니다. 여기에 포함시킬 수있는 다른 방법을 생각할 수 있다면 아래 의견 양식을 사용하여 지적하십시오. "여러분의 의견을 기다리겠습니다!