netcat を使用して TCP ポートをリッスンしています。カンマ区切りのデータを 5 分ごとに受信し、テキスト ファイルに書き込んでいます。これが私が実行しているコマンドです:
nc -dl 12.34.56.78 1234 > path/to/my/file & echo $!
このコマンドをコマンドラインから実行すると、データがファイルに保存され、すべて問題ありません。
ただし、何らかの理由でプロセスが停止した場合に netcat リスナーを復元する小さな PHP スクリプトを (上記と同じコマンドを使用して) 作成しました。スクリプトは、cron ジョブを介して実行されます。この場合、データは引き続きファイルに書き込まれますが、常に "^@" 文字の文字列が先頭に追加され、その長さは毎回 (5 分ごとに) 増加します。
なぜこれが起こっているのか、そしてそれを止める方法についての洞察は大歓迎です!
マット。