시작시 bash 스크립트 실행


19

나는이 질문이 전에 요청되었음을 알고 있지만 내 문제에 대한 해결책을 찾을 수 없으며 시작시 스크립트를 실행할 수 없습니다. 내 스크립트는 다음과 같습니다.

#!/bin/bash
iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT 
iptables -A OUTPUT -m state --state NEW -p tcp --sport 22 -j ACCEPT

나는 그것을 /etc/init.d디렉토리에 넣었다.

다음을 사용하여 실행 파일이 있는지 확인하십시오. chmod 755 /etc/init.d/iptables.sh

그리고 완료 touch /etc/rc3.d/S01iptables.sh

그러나 아무것도 :( ... 어떤 제안?

[2017 년 11 월] 여기에 허용 된 답변은 더 이상 사용되지 않는 것으로 간주됩니다. /raspberrypi//a/75057/5538 를 참조 하십시오.

답변:


12

[이 답변의 더 이상 사용되지 않는 질문에 대한 참고 사항을 참조하십시오.]

스크립트가 부팅 순서에 추가되도록하려면이 명령을 사용하십시오.

sudo update-rc.d /etc/init.d/nameofscript.sh defaults

chmod와 함께 + x 옵션을 사용하여 스크립트를 실행 가능하게 만들 수 있습니다.

chmod +x /etc/init.d/nameofscript.sh

1
예, update-rc.d명령이 작동했습니다 : D ... 전에 사용했지만 오류를 반환하는 것처럼 보였으므로 Lol을 무시했습니다 ... 도움을 주셔서 감사합니다 : D

5
그것은 것 sudo update-rc.d nameofscript.sh defaults제시에 적어도 피하기 위해 update-rc.d: error: initscript does not exist: /etc/init.d//etc/init.d/nameofscript.sh.
derFunk

이 스크립트는 적당한 시간 내에 끝나야합니까? 또는 예를 들어 비디오를 무한대로 반복하는 데 사용할 수 있습니까?
clankill3r

19

시작시 실행되도록 cronjob을 설정할 수도 있습니다 ( 자습서 참조 ).

(sudo) crontab -e

sudo스크립트에 수퍼 유저 권한이 필요한 경우 에만 추가 하십시오. 그런 다음 이것을 crontab에 추가하십시오.

@reboot /path/to/script.sh

이 방법을 사용하여 스크립트를 시작했으며 어떤 이유로 든 모든 ssh 액세스를 종료했습니다. 다른 리눅스 장치에 드라이브를 마운트하고 crontab 줄을 주석 처리해야했습니다.
힐 힐리

6

로그인 할 때마다 스크립트.bashrc실행할 스크립트 실행 명령을 맨 아래에 추가 할 수 있습니다 .

  1. pi폴더 에 있는지 확인하십시오 .

    $ cd ~
    
  2. 파일을 작성하고 파일에서 실행할 스크립트를 작성하십시오.

    $ sudo nano superscript
    
  3. 저장하고 종료 : Ctrl+ X, Y,Enter

  4. .bashrc구성 을 위해 엽니 다 .

    $ sudo nano .bashrc
    
  5. 아래로 스크롤하여 줄을 추가하십시오. ./superscript

  6. 저장하고 종료 : Ctrl+ X, Y,Enter


당신이 솔루션을 찾고 있다면 콘솔로 부팅에서 작동 , 한 번 봐 가지고 이 링크를 . 기본 요약 :

  1. 시작 스크립트 용 파일을 작성하고 파일에 스크립트를 작성하십시오.

    $ sudo nano /etc/init.d/superscript
    
  2. 저장하고 종료 : Ctrl+ X, Y,Enter

  3. 스크립트를 실행 가능하게 만드십시오.

    $ sudo chmod 755 /etc/init.d/superscript
    
  4. 시작할 때 실행할 스크립트를 등록하십시오.

    $ sudo update-rc.d superscript defaults
    

LXDE 환경으로 부팅 할 때 스크립트를 실행하려면 이 Raspberry Pi 포럼 게시물을 살펴보십시오 .

  1. 로 이동 ~/.config/lxsession/LXDE-pi

  2. autostart해당 폴더 에서 파일을여십시오.

    $ sudo nano autostart
    
  3. @bash /path/to/scriptname &새 줄에 추가하십시오 . 파이썬 스크립트와 같은 것을 실행하려면 @python mypython.py새 줄에 같은 것을 넣으십시오 . 스크립트 파일을 실행하면 될 것이다 @./superscript, 그러나 어떤 이유로 스크립트가 무한 루프 (아마도에서 실행 이 중지됩니다).

  4. 저장하고 종료 : Ctrl+ X, Y,Enter

  5. Raspberry Pi를 LXDE 환경으로 다시 시작하십시오.

시작시 스크립트 실행 에서 가져옴


1

나는 보통 /etc/rc.local예를 들어 /path/to/my/script.sh &마지막 줄 앞에 스크립트를 실행할 줄을 추가한다 exit 0. 스크립트가 반환되지 않는 경우 백그라운드로 스크립트를 보내기 위해 "&"를 추가했습니다. 그렇지 않으면 다음 명령이 실행되지 않습니다.

그래서 당신의 경우에는 단순히 두 줄을 추가합니다

iptables -A INPUT -m state --state NEW -p tcp --dport 22 -j ACCEPT 
iptables -A OUTPUT -m state --state NEW -p tcp --sport 22 -j ACCEPT

의 끝에 /etc/rc.local직전 exit 0.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.