起動時にGUIアプリケーションを自動的に起動する必要がありますが、ネットワーク起動後の正しい方法は何ですか?私のオペレーティングシステムはLXDEを含むLubuntuです。 crontab、rc.local、autostartなどの他の方法を試しましたが、成功しませんでした。
ベストアンサー1
LXDE用の起動スクリプトを配置する方法がわかっている場合(参照)文書)、いつでもカスタムスクリプトを作成できます。
until ip link show $interface | grep -F -q "state UP"; do
sleep 10 # wait every ten second
done
# interface is up, now start program
exec bla
説明する:
ip link show $interface
インターフェイスの状態を含む行を印刷します(この例ではenp0s25
)。3:enp0s25:mtu 1500 qdisc fq_codelステータスUPモードDEFAULTグループデフォルトqlen 1000
grep -F -q "state UP"
出力に行が含まれていることを確認してくださいstate UP
。その場合は成功(終了コード0)を返し、そうでなければ失敗(終了コード1)を返します。until … do; sleep 10; done
sleep 10
コマンドが成功するまで、つまりip
表示されるまで実行しますstate UP
。インターフェースが機能しない限り、10秒待ってからもう一度確認してください。インターフェイスが表示されると、ループが終了し、次のスクリプトが実行されます。
もちろん、これは理想的な解決策ではありませんが、常に機能する「忙しい待機」です。 (または実際のインターネット接続を確保するためにping -W 2 -c 1 google.com >& /dev/null
代わりに使用してください。)ip … | grep
一部のネットワーク管理者を使用している場合は、そのマニュアルを確認して、ネットワーク接続が確立されたときに実行されるスクリプトを追加できることを確認してください。ただし、これはルートアクセスでのみ機能できるため、Xセッションでプログラムを起動するのは複雑になります。