#!/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月]这里接受的答案应该被认为已经过时,请参阅https://raspberrypi.stackexchange.com/a/75057/5538
#1 楼
[请参阅问题中有关此答案已过时的注释。]
尝试使用此命令来确保将脚本添加到引导顺序中:
sudo update-rc.d /etc/init.d/nameofscript.sh defaults
请注意,您可以使用带有chmod的+ x选项使脚本可执行:
chmod +x /etc/init.d/nameofscript.sh
#2 楼
您还可以设置一个cronjob(请参阅教程),使其在启动时运行。(sudo) crontab -e
如果脚本需要超级用户特权,则仅添加
sudo
。然后将其添加到您的crontab中:@reboot /path/to/script.sh
评论
我使用此方法启动脚本,由于某种原因它关闭了所有ssh访问。我必须将驱动器安装在另一个Linux设备上,并注释掉crontab行。
– Phill Healey
20年1月6日在18:41
#3 楼
您可以将脚本可执行命令添加到.bashrc
的底部,该命令将在每次登录时运行脚本。请确保您位于
pi
文件夹中:$ cd ~
创建文件并编写脚本以在文件中运行:
$ sudo nano superscript
保存并退出:Ctrl + X,Y,输入
打开
.bashrc
进行配置:$ sudo nano .bashrc
向下滚动到底部并添加该行:
./superscript
保存并退出:Ctrl + X,Y,Enter
如果您正在寻找可用于启动控制台的解决方案,请查看此链接。基本清单:
为启动脚本创建一个文件,并将脚本写入该文件:
$ sudo nano /etc/init.d/superscript
保存并退出:Ctrl + X,Y,输入
使脚本可执行:
$ 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脚本的内容,请在新行上放置类似@python mypython.py
的内容。运行脚本文件将是@./superscript
,但是由于某种原因,脚本会无限循环运行(也许这会停止该循环)。保存并退出:Ctrl + X,Y,Enter
重新启动Raspberry Pi进入LXDE环境。
源自启动时的Execute脚本
#4 楼
我通常只添加一行以执行/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
末尾。#5 楼
首先为我创建脚本,将
startup_file.sh
移至,将
startup_file.sh
移至/etc/init.d/
,确保该脚本可通过以下命令执行:
sudo chmod +x /etc/init.d/startup_file.sh
现在使用此命令:
sudo update-rc.d startup_file.sh defaults
这是由goldilocks建议的:
sudo update-rc.d /etc/init.d/startup_file.sh defaults
;对我没用!只尝试两个应该工作的其中一个
评论
是的,update-rc.d命令起作用:D ...我以前用过,但是它似乎只是返回一个错误,所以我忽略了它大声笑...感谢您的帮助:D
– anon
2014年4月25日在23:46
至少在Jessie上,这将是sudo update-rc.d nameofscript.sh的默认值,以避免update-rc.d:错误:初始化脚本不存在:/etc/init.d//etc/init.d/nameofscript。 sh。
– derFunk
15年11月30日在17:05
该脚本是否必须在合理时间内结束?还是可以将其用于无限循环视频?
–clankill3r
17年5月1日在11:18