Linuxログイン画面でプログラムを実行する

Linuxログイン画面でプログラムを実行する

Linuxデバイスを起動するときに、デバイスのログイン画面が表示される(またはその前に)プログラムを実行したいと思います。最大の問題は、ユーザーログインなしでアプリケーションを実行することです。たとえば、Java JFrame FormsまたはPython tkinter)

ユーザーがログインせずにアプリケーションを開くことはできますか?

crontabを試してみましたが、成功しませんでした。解決策は「init.d」かもしれないと思ってこれを試しましたが、私のラズベリーパイでは実行できません。 JavaまたはPythonでinit.dを使用する方法がわかりません。

実際、私が使いたいデバイスはJetson Nanoです。 (現在、ラズベリーパイがなくてラズベリーパイを使用しています。) ラズベリーパイで動作しない機能がJetson Nanoでは動作するのか気になります。それともこれ以外の解決策はありますか?

ありがとうございます。

ベストアンサー1

はい、その目的に合ったユーザーアカウントで実行し、ログインせずにローカルGUIディスプレイで使用するようにアプリケーションを設定することができます。これを「キオスク設定」または「キオスクモード」と呼びます。

Google「ラズベリーパイキオスクモード」では、多くの例を見つけることができます。ほとんどは、chromium-browserウィンドウマネージャ機能が制限された固定フルスクリーンモードで実行するように構成されていますが、代わりに他のGUIプログラムを使用できます。 (unclutterマウスポインタを非表示にする必要がない場合は省略できます。)

通常、単一のアカウントに対してGUI自動ログインを設定し、ミニマリストウィンドウマネージャでアプリケーションを実行するように設定するのが最も簡単です。

ソフトウェアの量をさらに減らしたい場合は、これがどのように機能するかを調べ、カスタムスクリプトを作成してこれらstartxinit.dいずれかを使用したり、startxウィンドウxinitマネージャがまったくない場合や、X11サーバーとアプリケーションを一緒に起動することもできます。適切に構成されたミニマリストウィンドウマネージャ。これはより難しいアプローチですが、その過程でX11セッション設定の複雑さについて多くのことを学ぶことはほとんど保証されています。

GUIログイン画面に何かを表示したい場合一般ログインダイアログの横次に、X Display ManagerサービスのGUIセッション起動スクリプトを見つけて、ログインダイアログボックスの表示を準備するためにアプリケーションを起動するようにカスタマイズする必要があります。たとえば、を使用して、gdm3ログイン画面の正しい場所にコンテンツを追加します/etc/gdm3/Init/Default

セキュリティ上の理由から、ログイン画面からログインセッションに切り替えるか、その逆に切り替えるとディスプレイマネージャがX11サーバーをリセットしようとする可能性があるため、ログイン画面でアプリケーションを起動してログインセッションを取得できないことがあります。これへのアクセスはセッション全体で「継承」されます。 GUIログインシーケンスの一部としてアプリケーションを再起動する必要があるかもしれません。

おすすめ記事