Linux で LED を異なる時間に点滅させる

Linux で LED を異なる時間に点滅させる

Raspi3b にインストールされた Ubuntu の LED を点滅させる Python プログラムを作成しました。プログラムを実行すると、LED を点滅させることができます。次のステップは、電源投入時、ssh がアクティブになった後、シャットダウンの終了時など、さまざまなタイミングで点滅させることです。私は Linux とシステム プログラミングの初心者です。

私の問題は、SSH がアクティブになった直後に LED の点滅をトリガーすることです。つまり、起動時に SSH という行が表示され、その直後に LED が点滅するようにしたいのです。ファイル*.sh*.serviceファイルを作成しました。このソースは、SSH がアクティブまたは有効になった後は機能しません。SSH からログインしてトリガーすると、sudo systemctl start my-startup.serviceLED が点滅しました。SSH がアクティブまたは有効になった後に点滅しない理由がわかりません。

ここから多くのことを学ぶので、別のステータスに切り替えられるようになったら、このトピックを継続したいと思います。

  1. 電源オン(おそらく Linux の起動が始まったときから)
  2. SSH アクティブ/有効
  3. ブーツエンド
  4. シャットダウンの終了

私の最初のスクリプトは SSH です。

GNU nano 4.8                              /usr/local/sbin/my-startup.sh
#!/bin/bash

check_stat=`ps -ef | grep sshd | grep -v grep | awk '{print $2}'`
if [ "${check_stat}X" != "X" ]
then
echo "SSHD is running"
python3 /usr/local/sbin/my-startup.py
else
echo "SSHD isn't running"
fi
GNU nano 4.8                          /etc/systemd/system/my-startup.service
[Unit]
Description=Startup
After=ssh.service

[Service]
Type=simple
ExecStart=/usr/local/sbin/my-startup.sh

[Install]
WantedBy=multi-user.target
#  Blink an LED with the LGPIO library
#  Uses lgpio library, compatible with kernel 5.11
#  Author: William 'jawn-smith' Wilson

import time
import RPi.GPIO as GPIO


GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
GPIO.setup(23,GPIO.OUT)

GPIO.output(23,GPIO.HIGH)
time.sleep(1)

GPIO.output(23,GPIO.LOW)

関連情報