ノートパソコンと携帯電話を手動で接続しようとしています。bluez-utils
バージョン4.98-2ubuntu7
はインストールされています。ターミナルでエージェントを実行すると、次のメッセージが表示されます。
asheesh@U32U:~$ sudo bluetooth-agent 4835
Pincode request for device /org/bluez/980/hci0/dev<id>
Authorizing request for /org/bluez/980/hci0/dev<id>
携帯電話からペアリングしようとすると、PIN コード要求行が表示されます。プロンプトが表示されたらパスキーを入力すると、デバイスが承認されます。これで、携帯電話からラップトップにファイルを送信できます。ただし、要求を承認した後、アプリケーションが停止し、制御が端末に戻されません。
なぜこのようなことが起こるのでしょうか? どうすれば制御を取り戻せるのでしょうか?
これは、インターネット上で私が見た例とは矛盾しているようです。インターネット上では、さらなるコマンドを実行するための承認後に端末が使用可能になります。
バックグラウンドで実行することが解決策であることは理解していますが、ペアリングが完了したら他の特定のタスクを実行する必要があるため、フォアグラウンドで実行することを希望します。
これを使ってみました:
bluetooth-agent "$PIN" 1> ./bluelog #Background run tested also
ただし、プロセスは完了する (または強制終了される) まで出力をファイルに書き込まないため、 で出力をテストすることはできませんbluelog
。プロセスが完了する前に出力を書き込むように強制する方法はありますか?
答え1
これは、問題に対する単なる回避策です。実際のbluetooth-agent
停止の問題に対処する方法についての提案があれば、歓迎します。
バックグラウンドで実行しているときは、stdbuf
行バッファリングを無効にしていました。これにより、ログ ファイルがリアルタイムで更新され、実行する必要がある残りのアクティビティを確認してトリガーできるようになります。STDOUT
bluetooth-agent
stdbuf -o 0 bluetooth-agent "$PIN" 1> ./bluelog &