自動起動の設定は,init を用いるのが従来のやり方であるが,いまはこれに替わって systemd が導入されている。
以下,hostapd の自動起動を,systemd のやり方で設定する。
- hostapd のユニットファイル (systemd から hostapd を起動するための設定ファイル) /lib/systemd/system/hostapd.service の作成
──これは,既に作成されている ( hostapd のインストールのときに作成されている)。
$ cd /lib/systemd/system
$ ls -la hostapd.service
-rw-r--r-- 1 root root 396 Apr 16 22:07 hostapd.service
$ cat hostapd.service
[Unit]
Description=Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
After=network.target
[Service]
Type=forking
PIDFile=/run/hostapd.pid
Restart=on-failure
RestartSec=2
Environment=DAEMON_CONF=/etc/hostapd/hostapd.conf
EnvironmentFile=-/etc/default/hostapd
ExecStart=/usr/sbin/hostapd -B -P /run/hostapd.pid -B
[Install]
WantedBy=multi-user.target
- /etc/systemd/system の中に,/lib/systemd/system/hostapd.service へのシンボリックリンク hostapd.service を作成
$ cd etc/systemd/system
$ ls -la hostapd.service
(存在しない)
$ sudo ln -s /lib/systemd/system/hostapd.service hostapd.service
$ ls -la hostapd.service
hostapd.service -> /lib/systemd/system/hostapd.service
$ cat hostapd.service
(/lib/systemd/system/hostapd.service の内容が表示される)
- systemd に,ユニットファイルの追加を通知する
$ sudo systemctl daemon-reload
これにより,/etc/systemd/system/multi-user.target.wants の中に,/lib/systemd/system/dhcpcd.service へのシンボリックリンク dhcpcd.service が作成される:
$ ls -la /etc/systemd/system/multi-user.target.wants
hostapd.service -> /lib/systemd/system/hostapd.service
- systemd に対する hostapd.service の status を確認
── "enabled" が,自動起動有効を意味する
$ sudo systemctl status hostapd.service
● hostapd.service - Advanced IEEE 802.11 AP and IEEE 802.1X/WPA/WPA2/EAP Authenticator
Loaded: loaded (/lib/systemd/system/hostapd.service; enabled; vendor preset: enabled)
Active: inactive (dead)
/lib/systemd/system/hostapd.service; enabled となっているので,これでよし。
disabled になっているときは,つぎのコマンド:
$ sudo systemctl enable hostapd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/hostapd.service
to /etc/systemd/system/hostapd.service.
- 動作確認
$ sudo systemctl start hostapd.service
$ ps -ef|grep hostapd
root 5256 1 0 13:17 ? 00:00:00
/usr/sbin/hostapd -B -P /run/hostapd.pid -B /etc/hostapd/hostapd.conf
PC の「ネットワーク」で WiFi を「入」にする。
アクセスポイントに「raspi」があることを確認。
PC のターミナルの新規ウィンドウを開き,Raspberry Pi に WiFi で接続:
|