まえがき
~/.config/autostart/
にVLCの起動スクリブトを書いて動けば,systemdを使う必要はありません.実際筆者の試したところでは,Raspberry Pi 3 Model B (RPi3), 同 3 Model B+ (RPi3+), 同 4 Model B (RPi4)ではautostartに登録で問題なくVLCが起動できて実用的な安定性が得られます.
しかしどうしたものか,Raspberry Pi Zero 2 WH (RPiZero2)では,上記の方法では,VLCの起動はしますが,数分でVLCが落ちてしまいます.
そこで,alternativeとしてsystemdでの起動を試み,RPiZero2においても安定にVLCでRTSPの再生ができるようになりました.
2025年6月11日(水)現在の状況をまとめます.
ここに記してある方法は,筆者のモットー “動けば良いのだ™” に従っていて,なぜそうなるのかという原因の究明は一切ありません.
また,今後のRaspberry Pi OSやVLCのupdateにより,状況が変わってくる可能性も十分にあります.
/etc/systemd/systemに登録
成功した方法です.
VLCを起動するスクリプトrun_vlc.sh
を自動ログインユーザーのホームディレクトリー/home/自動ログインユーザー名/に置きます.
#!/bin/sh
DISPLAY=:0 /usr/bin/vlc \
-f \
rtsp://1234:5678@192.168.1.99/live \
> /dev/null 2>&1 &
chmod a+x run_vlc.sh
をしておきます.
次にsudo -i
でroot権限になります.そして,/etc/systemd/system/
に,2つのファイルを作ります.
# run_vlc.service
[Unit]
Description=Run vlc
DefaultDependencies=no
After=graphical.target
[Service]
Type=simple
User=自動ログインユーザー名
Group=同グループ名(たぶんUser名と同じ)
ExecStart=/home/自動ログインユーザー名/run_vlc.sh
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=default.target
# run_vlc.timer
[Unit]
Description=Delayed start of vlc
After=graphical.target
[Timer]
OnBootSec=30sec
[Install]
WantedBy=timers.target
そして,root権限のまま,
systemctl enable run_vlc.timer
reboot
とします.これで再起動後に,VLCが起動すれば成功です.
~/.config/systemd/userに登録
この方法は,RPi3ではうまくいきますが,RPiZero2では,システムの起動後VLCはいったんは自動起動しますが,その後モニター(地デジテレビ)のほうで入力ソースを切り替えたり,モニターの電源をOFF/ONすると,VLCが落ちます.そのため,RPiZero2では,前項の方法をお薦めします.
こちらは,自動ログインユーザー権限のままの作業です.
まず,たぶんないので~/.config/systemd/user
というディレクトリーを作ります.その中に,run_vlc.serviceとrun_vlc.timerを作ります.
# run_vlc.service
[Unit]
Description=Run vlc
DefaultDependencies=no
After=graphical.target
[Service]
Type=simple
ExecStart=/home/自動ログインユーザー名/run_vlc.sh
TimeoutStartSec=0
RemainAfterExit=yes
[Install]
WantedBy=default.target
# run_vlc.timer
[Unit]
Description=Delayed start of vlc
After=graphical.target
[Timer]
OnBootSec=30sec
[Install]
WantedBy=timers.target
そして,ユーザー権限のまま,
systemctl --user enable run_vlc.timer
としてから,再起動します.筆者のテストでは前述のようにRaspberry Pi Zero 2ではシステムの起動後にVLCが起動はしますがモニターの切り替えなどですぐVLCが落ちてしまいます(RPi3以上ではうまく動きます).
Don’t ask me why!