私は組み込みの電子エンジニアで、2か月間、私の顧客の1人にDebianベースのディストリビューションを使用して開発しました。
私は実際にオペレーティングシステムと4Gモデム間の通信と接続を処理するプロジェクトを進めています。モデムはATコマンドで管理され、オペレーティングシステムの接続は主にコマンドでping
管理curl
されます。
Pythonスクリプトはこれまでうまく機能しており、約2週間テストされました。私はそれに満足しており、今はスクリプト自動化段階にあります。
起動時にスクリプトを起動するためにsystemdと古い方法(init.d)を試しました。どちらもスクリプトを正しく実行しますが、コマンドの出力ping
にcurl
問題があります。
ATコマンドを使用してモデムを初期化したら、nmcli device connect
NetworkManagerパッケージのコマンドをスクリプトしてネットワークで使用し、ping
ネットワークと対話できるIPを取得しますcurl
。
systemd サービスで起動するか、init.d を使用して起動すると、コマンド出力は失敗します。ホストにpingを送信できず、結果がカールされます000
。
それにもかかわらず、Network Managerのステータスを表示するときは、次のような有効な設定がまだあります。
- IPアドレス
- DNSサーバー
- デフォルトゲートウェイ/ルーター
ただし、スクリプトの外部でもping
andcurl
コマンドを使用すると、前述したのと同じエラーが発生します。
解決策を探すと、ネットワーク管理者がサービスを正しく機能させるためにDBUSセッションを使用していることがわかりました。
少し詰まっていますが、さらに問題を解決するための提案がある人がいるかどうか疑問に思います。
デバッグ用にネットワーク管理者のロギングを設定しましたが、これについては何もありません。
あなたの助けをいただきありがとうございます!
アントゥアン