我有一个bash脚本停止程序,挂载pi并再次启动程序。我想在启动时启动它,但是在程序本身启动之后。所以我的想法是等待一段时间(20或30秒)然后启动脚本(task.sh
)。知道我怎么能这样做吗?或者任何其他想法如何解决这个问题? (让脚本等待程序启动将无法工作我猜,因为脚本会在程序重启后重启,对吗?)
谢谢和问候, 利亚
答案 0 :(得分:0)
假设您正在使用Debian / Debian派生发行版(Ubuntu / Mint / Etc),这里是如何实现您所寻找的结果。
使用任何文本编辑器(我在这里使用简单的nano)在您建议的路径中创建脚本:
nano /home/pi/task.sh
粘贴到您的task.sh:
sleep 40
/home/pi/pi_video_looper/disable.sh
mount -a
/home/pi/pi_video_looper/install.sh
使脚本可执行:
chmod +x /home/pi/task.sh
确保脚本正常运行:
/home/pi/task.sh
一旦你确定脚本可以正常编辑你的rc.local:
sudo nano /etc/rc.local
这里的一个关键概念是,无论你放入rc.local中的任何内容都将以root权限执行 因此无需使用sudo。
在退出0之前添加以下内容:
/home/pi/task.sh
重新启动并测试
答案 1 :(得分:0)
感谢您的帮助,但我在本教程后自行解决了这个问题:
在/etc/init.d/
中创建一个新文件,我将其称为示例。
所以:
sudo nano /etc/init.d/example
这将是一个将在raspberry pi启动后执行的文件。 该文件的代码如下:
#!/bin/sh
### BEGIN INIT INFO
# Provides: Für welches Programm ist das Script?
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Kurze Beschreibung
# Description: Längere Beschreibung
### END INIT INFO
# Actions
case "$1" in
start)
# START
;;
stop)
# STOP
;;
restart)
# RESTART
;;
esac
exit 0
因为我希望此脚本在启动时重新启动/home/pi/task.sh
,所以我只需要
/home/pi/task.sh
;;
和# START
之后的# RESTART
之前
如果您已完成此操作,请将其保存并退出。然后输入
sudo chmod +x /etc/init.d/example
使脚本可执行。最后一步是定义运行级别:
sudo update-rc.d example defaults
之后,您可以重新启动,看看它是否有效。
我希望每个人都明白:)
(仅限我:https://jankarres.de/2014/07/raspberry-pi-autostart-von-programmen-einrichten/:D)