如何在启动后20秒启动bash脚本?

时间:2018-05-28 12:54:35

标签: python bash raspberry-pi raspberry-pi3 autostart

我有一个bash脚本停止程序,挂载pi并再次启动程序。我想在启动时启动它,但是在程序本身启动之后。所以我的想法是等待一段时间(20或30秒)然后启动脚本(task.sh)。知道我怎么能这样做吗?或者任何其他想法如何解决这个问题? (让脚本等待程序启动将无法工作我猜,因为脚本会在程序重启后重启,对吗?)

谢谢和问候, 利亚

2 个答案:

答案 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)