Загрузите нормально даже с бесконечной петлем в /etc/rc.local

Я думаю, проблема в ваших цитатах в строке 11 / etc / default / hostapd :

”/etc/hostapd/hostapd.conf”

Здесь следует читать:

"/etc/hostapd/hostapd.conf"

Ваше сообщение действительно помогло мне решить мою проблему, поэтому спасибо!

0
07.05.2018, 04:24
1 ответ

Предполагая, что Raspbian Stretch использует systemdкак обычный Debian Stretch по умолчанию, /etc/rc.localзапускается/lib/systemd/system/rc-local.service:

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

Поскольку он указывает Type=forking, TimeoutSec=0и RemainAfterExit=yes, я понимаю, что systemd в основном запускает его и не заботится о том, завершается он или нет. Это объясняет, почему система может успешно завершить загрузку, даже если /etc/rc.localвсе еще работает.

Ваш скрипт rc.localсначала запускает startsignal.pyв фоновом режиме (= с &):, что означает, что только сбой при запуске скрипта вызовет ошибку в скрипте rc.localв этот момент. Если startsignal.pyуспешно запускается, но затем возвращает ошибку, rc.localдолжен будет использовать wait <process or job ID>для чтения входящей ошибки из процесса startsignal.py. Но ваш процесс, по-видимому, не заботится об этом.

Затем ваш rc.localначинает fan.py. Поскольку он запускается без &,оболочка запустит другой процесс для запуска fan.pyи дождется его выхода... но поскольку fan.pyимеет бесконечный цикл, он не завершится, пока система не будет выключена, fan.pyне возникнет ошибка или работающий процесс fan.pyзавершается. touch /home/pi/thisisrunбудет выполнено только после выхода fan.py.

Я думаю, что было бы более разумно начатьstartsignal.pyбез &иfan.pyс , а не наоборот.

1
28.01.2020, 02:43

Теги

Похожие вопросы