Я думаю, проблема в ваших цитатах в строке 11 / etc / default / hostapd
:
”/etc/hostapd/hostapd.conf”
Здесь следует читать:
"/etc/hostapd/hostapd.conf"
Ваше сообщение действительно помогло мне решить мою проблему, поэтому спасибо!
Предполагая, что 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
с , а не наоборот.