Linux 재부팅 시 스크립트 자동 실행 설정하기

리눅스 환경에서 재부팅할 때 자동적으로 원하는 스크립트를 실행할 수 있는 방법을 알려드리겠습니다. rc.local 서비스를 이용한 방법인데 직접 사용해보고 정상동작하는 것을 확인하였으니 믿고 따라와주세요 🙂

리눅스 재부팅 후 스크립트 자동실행하는 방법

1. rc.local 파일 생성 및 편집


rc.local 파일이 기본적으로 존재하지 않을 수 있으므로 직접 생성해야 합니다.

    sudo vi /etc/rc.local
    #!bin/bash
    /etc/restart.sh
    exit 0
    

    여기서 /etc/restart.sh는 실행하고자 하는 스크립트의 경로입니다. 원하는대로 설정해주시면 됩니다. 그리고 :w!로 저장한 후 :q로 나와주세요.

    2.rc.local 파일에 실행 권한 부여


    rc.local 파일에 실행 권한을 부여해야 합니다.

         sudo chmod +x /etc/rc.local

      3. 스크립트 restart.sh에 테스트내용 작성하기

      restart.sh 파일이 정상적으로 실행되는 지 확인하기 위해 다음의 내용을 작성해보았어요.

      리눅스 시스템 재부팅 시 실행될 스크립트 내용 작성한 모습

      이제 재부팅하면 /home/test.txt파일명에 restart test라는 내용을 가진 파일이 생성될거에요.

      그리고 똑같이 실행 권한을 부여해주세요.

         sudo chmod +x /etc/restart.sh

      4. rc-local 서비스 수정


      이제 rc-local 서비스를 생성하고 활성화해야 합니다. 파일 위치는 다음과 같습니다. /etc/systemd/system/rc-local.service

      만약 파일이 없다면 새로 생성해주시고 있다면 수정하시면 됩니다.

           sudo vi /etc/systemd/system/rc-local.service

        기본적으로 마지막 [install] 부분이 없을텐데요. 해당 내용을 파일에 추가합니다.

           [Unit]
           Description=/etc/rc.local Compatibility
           ConditionPathExists=/etc/rc.local
        
           [Service]
           Type=forking
           ExecStart=/etc/rc.local start
           TimeoutSec=0
           StandardOutput=tty
           RemainAfterExit=yes
           SysVStartPriority=99
        
           [Install]
           WantedBy=multi-user.target

        Install 부분의 내용은 쉽게 설명하자면 부팅이 된 후 로그인을 위해 유저가 타겟으로 바뀔 때 스크립트를 실행한다는 뜻입니다.

        5. 서비스 활성화 & 시작 & 확인


        이제 rc-local 서비스를 활성화하고 시작합니다.

          sudo systemctl enable rc-local
          sudo systemctl start rc-local
          sudo systemctl status rc-local
          rc-local status의 결과값 캡처

          status의 결과가 위와같이나오면 정상입니다.

          6. 재부팅 후 결과확인

          혹시라도 /home/test.txt 파일이 있는 지 확인한 후 시스템 reboot를 진행합니다.

          재부팅 한 후 스크립트의 /home/test.txt파일이 생성되어있고, restart test라는 내용이 써져있다면 정상작동한 것입니다.

          재부팅 직후 스크립트가 정상실행되었는 지 확인

          재부팅 후 확인해보니 정상적으로 test.txt 파일이 생성되었고, 파일 내용도 잘 써져있는 것을 확인할 수 있었습니다.

           
          

          답글 남기기

          이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다