시작시“rc.local”을 실행하려면 어떻게해야합니까? “rc.local”에 넣었지만 작동하지 않습니다. 시작시

시스템을 시작할 때 실행할 스크립트가 있습니다. “rc.local”에 넣었지만 작동하지 않습니다. 시작시 실행되도록하려면 어떻게해야합니까?



답변

스크립트를 수동으로 실행할 수 있습니까? 그렇지 않은 경우 해당 스크립트에 문제가있는 것입니다. 그렇지 않으면 rc.local을 더 살펴보십시오. 해당 스크립트를 루트로 실행해야하는 경우 sudo를 사용하여 수동으로 실행해야합니다.

/etc/rc.local이 실행 가능한지 그리고 호출하는 스크립트도 실행 가능한지 확인하십시오.

$ ls -l /etc/rc.local
-rwxr-xr-x 1 root root 419 2010-08-27 11:26 /etc/rc.local

rc.local에 shebang 행이 있는지 확인하십시오 (기본값).

$ head -n1 /etc/rc.local
#!/bin/sh -e

답변

제 경우에는 지침 중 완벽한 솔루션이 없었습니다. 당신이 나만큼 운이 없다면,이 자세한 것을 시도하십시오

  1. 모든 실행 코드를 foo.sh와 같은 임의의 이름을 가진 별도의 텍스트 파일에 넣고 임의의 위치에 저장하십시오.
  2. 더하다

    #!/bin/sh

    코드의 첫 줄로.

  3. foo.sh를 실행 해보십시오.

    sudo foo.sh

    전혀 오류가 없는지 확인하십시오.

  4. sh 명령 뒤에 /etc/rc.local 스크립트에 작성된 스크립트의 전체 경로와 이름을 제공하십시오.

    sh '/path/to/your/script/foo.sh'
  5. 위의 줄을 마지막 코드 줄 앞에 두어야합니다.

    exit 0

    /etc/rc.local 스크립트 끝에서.

  6. /etc/rc.local의 첫 줄을 확인하십시오

    #!/bin/sh -e
  7. /etc/rc.local이 아직 실행 가능하지 않은 경우 실행 가능하게 만드십시오.

    sudo chown root /etc/rc.local
    sudo chmod 755 /etc/rc.local
  8. 실행하여 모든 것이 잘 작동하는지 확인하십시오.

    sudo /etc/init.d/rc.local start
  9. 시스템을 다시 시작하십시오.

답변

최신 우분투 버전 systemd이 사용 /etc/rc.local되며 기본적으로 항상로드되지는 않습니다.

호환성 서비스가로드되어 있는지 확인

systemctl status rc-local.service

활성화 된 (종료 된) 설정 이 들어 있으면 설정이 정상으로 보이고 /etc/rc.local파일에 다른 오류가 있을 수 있습니다 (예 : 실패한 명령 일 수 있음).


답변

두 가지 제안.

  1. 대상 스크립트 파일도 실행 가능으로 표시되어 있는지 확인하십시오.
  2. 대상 스크립트가 sudo 명령을 실행 중입니까? 그렇다면 sudo 비밀번호를 제공 할 수 있습니다.

내 잘못이야. 한 번만 확인하십시오. 수정 enzotib 주셔서 감사합니다 🙂