我有一个想在启动时运行的脚本(这是针对树莓派的),并且我按照同一问题的答案中的说明进行操作(链接这里)。
我想要运行的代码位于一个名为的文本文件中
startup.sh
#!/bin/sh
位于 的第一行startup.sh
。但是当我sudo startup.sh
在终端中运行以检查代码是否正常运行时,我收到一条错误消息,提示“未找到命令”。当我运行startup.sh
在 中
/etc/rc.local
,我写了sh
,然后是完整路径名,startup.sh
后面跟着exit 0
sh /home/bugs/Desktop/AutoBeetle-BeetleMonitoring/startup.sh exit 0
验证了第一行
/etc/rc.local
是#!/bin/sh -e
确保
/etc/rc.local
可执行:sudo chown root /etc/rc.local sudo chmod 755 /etc/rc.local
验证代码是否有效:
sudo /etc/rc.local start
当我这样做时,代码运行得很好。但是当我重新启动系统时,它仍然无法在启动时运行。我很困惑为什么除了第 2 步之外一切都正常,以及这是否导致了启动时运行的问题。任何帮助都非常感谢。
答案1
如果其他方法都失败了,请考虑在 root 的 crontab 中添加一行:
@reboot /home/bugs/Desktop/AutoBeetle-BeetleMonitoring/startup.sh
最后一点,确保任何人都可以运行该脚本(即权限 755 或更高)
答案2
(我没有足够的声誉来评论。)尝试使用完整路径:/usr/bin/sudo 后跟脚本的完整路径。
(也许可以获得额外的声誉点数。)使用“which”命令显示完整路径:which sudo。