systemdと統合するときにのみsocatプロセスを開始してください。

systemdと統合するときにのみsocatプロセスを開始してください。

「socat」コマンドを実行して、ポート162の情報を別のコンピューターの同じポートにコピーしたいと思います。

このプロセスを実行するためにsystemdを追加しました。

[Unit]
Description=Socat SNMP Traps 162

[Service]
User=root
Type=forking
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=socat-trap-162

ExecStart=sudo socat -d -d UDP-LISTEN:162,fork UDP:10.127.130.70:162
Restart=on-failure

[Install]
WantedBy=multi-user.target

ただし、systemdを実行すると、次のように複数のPIDが生成されます。このスクリーンショットps | grep

初期PIDのみ生成できますか?

なぜなら、新しいPIDが常に生成されるからです。

答え1

UDPおよびUDP-LISTENアドレスは、UDPが終了ステータスを送信しないか、タイムアウトオプションを使用しないため、明示的に閉じる必要がある疑似ストリーム接続を生成します。-T <seconds>

トラップ送信者が1つしかない場合は、フォークせずにコマンドラインを使用できます。

socat -d -d UDP-LISTEN:162 UDP:10.127.130.70:162

送信者が複数人の場合は、データグラムモードを使用することをお勧めします。

socat -d -d UDP-RECV:162 UDP-SENDTO:10.127.130.70:162

UDP-RECVは一方向であり、SNMPトラップではうまく機能しますが、SNMPコマンドでは機能しません。

関連情報