Я купил Raspberry Pi 3 пару недель назад и давно с ней играю. Я использую Raspbian Lite без головы, и я хочу сделать кое-что при загрузке. Ничего захватывающего, всего несколько команд, но я нахожу это очень трудным для выполнения. Я буду использовать упрощенный пример моего сценария, но это то, к чему я работал, и это то, что я не могу заставить работать. Вот что я сделал до сих пор:

Создал файл, /etc/init.d/sanity

#!/bin/sh
# /etc/init.d/sanity

# If you want a command to always run, put it here
echo "sanity script is running"

# Carry out specific functions when asked to by the system
case "$1" in
  start)
    echo "START START START"
    echo "START START START" > /root/START.txt
    ;;
  stop)
    echo "STOP STOP STOP"
    echo "STOP STOP STOP" > /root/STOP.txt
    ;;
  *)
    echo "Usage: /etc/init.d/sanity {start|stop}"
    echo "FAIL FAIL FAIL" > /root/FAIL.txt
    exit 1
    ;;
esac

exit 0

Затем изменили разрешения с помощью:

chmod 755 /etc/init.d/sanity

Который, кажется, работает:

root@raspberrypi:/etc/init.d|⇒  ll
total 304
    ...blah blah blah...
-rwxr-xr-x  1 root root  493 Aug 13 23:09 sanity
    ...blah blah blah...

И, вручную запустить, кажется, работает:

root@raspberrypi:/etc/init.d|⇒  sh sanity start
sanity script is running
START START START
root@raspberrypi:/etc/init.d|⇒  sh sanity stop
sanity script is running
STOP STOP STOP
root@raspberrypi:/etc/init.d|⇒  sh sanity
sanity script is running
Usage: /etc/init.d/sanity {start|stop}
root@raspberrypi:/etc/init.d|⇒  cat /root/STOP.txt
STOP STOP STOP
root@raspberrypi:/etc/init.d|⇒  cat /root/START.txt
START START START
root@raspberrypi:/etc/init.d|⇒  cat /root/FAIL.txt
FAIL FAIL FAIL

Выглядит хорошо. Теперь я настроил его запуск при загрузке, затем попытался запустить его как службу ... но ничего не происходит.

root@raspberrypi:/etc/init.d|⇒  update-rc.d sanity defaults
insserv: warning: script 'K01sanity' missing LSB tags and overrides
insserv: warning: script 'sanity' missing LSB tags and overrides
root@raspberrypi:/etc/init.d|⇒  service sanity start
root@raspberrypi:/etc/init.d|⇒  ls /root
configurations
root@raspberrypi:/etc/init.d|⇒

Итак, что я здесь делаю не так? Есть ли что-то особенное в Малиновом Писе, которое мне не хватает? Я точно знаю, что делал это раньше с Ubuntu и Debian, и у меня никогда не было таких проблем. Это сводит меня с ума.

2 ответа2

0

(Извините @ Gogeta70)

Я на самом деле в конечном итоге с помощью systemd. Вот пример службы Dropbox, которую я получил, которая зависит от двух вещей:

[Unit]

Description=Dropbox as a system service
After=local-fs.target network.target

[Service]
User=me
Restart=always
ExecStart=/opt/dropbox/dropboxd
Restart=on-failure
RestartSec=1

[Install]
WantedBy=default.target

Я назвал файл dropbox.service и поместил его в /etc/systemd/system/

-1

Используйте systemd для управления сервисами.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .