コンピュータ間で簡単な信号を送受信しますか?

コンピュータ間で簡単な信号を送受信しますか?

標準のPiディストリビューションを実行しているRaspberryPiと同じローカルネットワーク上でLinux 16.04を実行する静的IPアドレスを持つコンピュータがあります。 PiはWake-on-LANパケットを送信してコンピュータを起動し、SSHトンネルを介してコンピュータに接続するために使用されます。

コンピュータがPiにメッセージを送信し、Piにコンピュータを正常に起動してアクセスできると解釈する簡単な方法はありますか?

私はPiが応答を受け取るまでコンピュータに常にpingを送信するシステムを設定しましたが、特にPiがコンピュータで確認するのではなく、コンピュータにPiにメッセージを送信させたいと思います。

答え1

使用nc- 最も簡単な方法です。

コンピュータ(*nixシステムと仮定):コンピュータの起動時にrc.localスクリプトが他のエントリの実行をブロックするのを防ぐために( echo "computer is up" | nc 192.168.0.123 6677 ) &。 192.68.0.123がコンピュータと同じネットワーク上のPiのIPアドレスであるとします。/etc/rc.local(...) &

Piがnc -l 6677wake-on-LAN信号を送信するために使用するコマンドを使用して、ポート6677でプロセスがリッスンするようにします。デフォルトでは、接続は送信者が接続を閉じるとすぐに終了します(これは、「コンピュータが動作している」文字列のすべてのncバイトが送信された後に発生する必要があります)。だからあなたは次のことをすることができます

netreply=$( nc -l 6677)
case $netreply in
     "computer is up") echo "All good" ;;
     *)  echo some boo-boo happened ;;
esac

関連情報