나는이 질문이 전에 요청되었음을 알고 있지만 내 문제에 대한 해결책을 찾을 수 없으며 시작시 스크립트를 실행할 수 없습니다. 내 스크립트는 다음과 같습니다.
#!/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 를 참조 하십시오.
답변
[이 답변의 더 이상 사용되지 않는 질문에 대한 참고 사항을 참조하십시오.]
스크립트가 부팅 순서에 추가되도록하려면이 명령을 사용하십시오.
sudo update-rc.d /etc/init.d/nameofscript.sh defaults
chmod와 함께 + x 옵션을 사용하여 스크립트를 실행 가능하게 만들 수 있습니다.
chmod +x /etc/init.d/nameofscript.sh
답변
시작시 실행되도록 cronjob을 설정할 수도 있습니다 ( 자습서 참조 ).
(sudo) crontab -e
sudo
스크립트에 수퍼 유저 권한이 필요한 경우 에만 추가 하십시오. 그런 다음 이것을 crontab에 추가하십시오.
@reboot /path/to/script.sh
답변
로그인 할 때마다 스크립트.bashrc
를 실행할 스크립트 실행 명령을 맨 아래에 추가 할 수 있습니다 .
-
pi
폴더 에 있는지 확인하십시오 .$ cd ~
-
파일을 작성하고 파일에서 실행할 스크립트를 작성하십시오.
$ sudo nano superscript
-
저장하고 종료 : Ctrl+ X, Y,Enter
-
.bashrc
구성 을 위해 엽니 다 .$ sudo nano .bashrc
-
아래로 스크롤하여 줄을 추가하십시오.
./superscript
-
저장하고 종료 : Ctrl+ X, Y,Enter
당신이 솔루션을 찾고 있다면 콘솔로 부팅에서 작동 , 한 번 봐 가지고 이 링크를 . 기본 요약 :
-
시작 스크립트 용 파일을 작성하고 파일에 스크립트를 작성하십시오.
$ sudo nano /etc/init.d/superscript
-
저장하고 종료 : Ctrl+ X, Y,Enter
-
스크립트를 실행 가능하게 만드십시오.
$ sudo chmod 755 /etc/init.d/superscript
-
시작할 때 실행할 스크립트를 등록하십시오.
$ sudo update-rc.d superscript defaults
LXDE 환경으로 부팅 할 때 스크립트를 실행하려면 이 Raspberry Pi 포럼 게시물을 살펴보십시오 .
-
로 이동
~/.config/lxsession/LXDE-pi
-
autostart
해당 폴더 에서 파일을여십시오.$ sudo nano autostart
-
@bash /path/to/scriptname &
새 줄에 추가하십시오 . 파이썬 스크립트와 같은 것을 실행하려면@python mypython.py
새 줄에 같은 것을 넣으십시오 . 스크립트 파일을 실행하면 될 것이다@./superscript
, 그러나 어떤 이유로 스크립트가 무한 루프 (아마도에서 실행 이 이 중지됩니다). -
저장하고 종료 : Ctrl+ X, Y,Enter
-
Raspberry Pi를 LXDE 환경으로 다시 시작하십시오.
시작시 스크립트 실행 에서 가져옴
답변
나는 보통 /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
.