Я купил 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 " 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 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 ответа на вопрос
0
cgm123
(Извините @ 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/
Okay, you didn't really answer my question but after a lot of reading I eventually accomplished what I wanted. One thing I was completely unable to do was make a service unit dependent on two path units. Can you point me to any doc that deals specifically with path units and/or unit dependencies?
cgm123 8 лет назад
0
@ cgm123 Я знаю, что прошло два года, но было бы неплохо, чтобы вы опубликовали решение, которое вы нашли, как ответ на свой вопрос. Я сейчас сталкиваюсь с теми же проблемами, что и вы ...
Gogeta70 6 лет назад
0