Как запустить скрипт bash через 20 секунд после запуска? - PullRequest
0 голосов
/ 28 мая 2018

Я получил bash-скрипт, который останавливает программу, монтирует pi и снова запускает программу.Я хотел бы запустить его при запуске, но после запуска самой программы.Поэтому моя идея состояла в том, чтобы просто подождать некоторое время (20 или 30 секунд) и затем запустить скрипт (task.sh).Есть идеи, как я могу это сделать?Или любая другая идея, как решить эту проблему?(пусть сценарий ждет запуска программы не будет работать, я думаю, потому что сценарий будет перезапущен после перезапуска программы, верно?)

Спасибо и привет, Элиас

Ответы [ 2 ]

0 голосов
/ 28 мая 2018

Спасибо за помощь, но я решил это сам, следуя этому уроку:

создайте новый файл в /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)

0 голосов
/ 28 мая 2018

Предполагая, что вы используете производный дистрибутив Debian / Debian (Ubuntu / Mint / Etc), вот как можно добиться желаемого результата.

Создайте сценарий по пути, который вы предложили, используя любой текстредактор (здесь я использую простой нано):

nano /home/pi/task.sh

Вставьте в свою задачу .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

Makeубедитесь, что скрипт работает, выполняя его:

/home/pi/task.sh

Как только вы убедитесь, что скрипт работает нормально, отредактируйте ваш rc.local:

sudo nano /etc/rc.local

Ключевой концепцией здесь является то, что вы положилив rc.local будет выполняться с правами root.
По этой причине нет необходимости использовать sudo.

Добавьте перед выходом 0 следующее:

/home/pi/task.sh

Перезагрузка и проверка

...