웹사이트 검색

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


나는 Linux 시스템을 부팅하고 로그온할 때 뒤에서 일어나는 일들에 항상 매료됩니다. 베어메탈에서 전원 버튼을 누르거나 가상 머신을 시작하면 완전한 기능을 갖춘 시스템으로 이어지는 일련의 이벤트가 실행됩니다. 때로는 1분도 채 걸리지 않습니다. 로그오프 및/또는 시스템 종료 시에도 마찬가지입니다.

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

배포판에 구애받지 않는 이 기사에서는 Linux에서 이러한 목표를 달성하기 위한 전통적인 방법에 대해 논의할 것입니다.

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

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

시작 중에 명령을 실행하거나 스크립트를 실행하는 두 가지 전통적인 방법이 있습니다.

방법 #1 - 크론 작업 사용

일정을 표시하는 데 널리 사용되는 일반적인 형식(분/시/월/월/요일) 외에도 cron 스케줄러에서는 @reboot 사용을 허용합니다. 이 지시어 뒤에 스크립트의 절대 경로가 오면 머신이 부팅할 때 스크립트가 실행됩니다.

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

  1. a) 크론 데몬이 실행 중이어야 하며(일반적인 상황에 해당)
  2. b) 스크립트 또는 crontab 파일에는 필요한 환경 변수(있는 경우)가 포함되어야 합니다(자세한 내용은 이 StackOverflow 스레드를 참조하세요).

방법 #2 – /etc/rc.d/rc.local 사용

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

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

파일 맨 아래에 스크립트를 추가하십시오.

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

#!/bin/bash
DATE=$(date +'%F %H:%M:%S')
DIR=/home/gacanepa
echo "Current date and time: $DATE" > $DIR/file1.txt
#!/bin/bash
SITE="linux-console.net"
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을 사용하세요. 대부분 후자의 파일은 수동으로 생성해야 할 것입니다. 이전과 같은 방식으로 각 파일의 맨 아래에 스크립트를 호출하는 줄을 놓으면 바로 사용할 수 있습니다.

요약

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