すべての* nixベースのシステムで起動時にjarを実行する

すべての* nixベースのシステムで起動時にjarを実行する

すべてのLinuxディストリビューションで起動時に実行する必要があるjarファイルがあります。私の前の質問ここ、Xサーバーの一般的な理解を提供しました。起動できないため、.desktop ファイルを/etc/xdg/autostart。他のディストリビューションについて少し調べた結果はないようですが、/etc/xdg/autostartすべての/xdg-autostartLinuxディストリビューションでjarファイルを実行する必要があります。 crontabを試しましたが、@rebootUbuntu 14.04では動作しません。もう1つの問題は、jarを削除するときに最初に配置されたファイルを削除する必要があることです。 rc.localを編集すると、編集内容を元に戻すことはできません。 Linuxで起動する一般的な方法はありますか?

ベストアンサー1

残念ながら、私はあなたが望むことを正確に達成することができる単一で一般的なアプローチがあるとは信じていません。すべてのnixには初期化システムがあり、さまざまな初期化システム(SysV、Upstart、systemdなど)があります。今systemdは一部SysVデーモンの実行がサポートされているため、SysVスクリプトを作成して両方のシステムで動作させることができますが、Upstartや他のシステムでどのように機能するかわかりません。目標を達成するのに役立つ2つの対策プロセスがあると思います。

  1. 各主要な初期化システムのサービスを作成します(多くのディストリビューションがsystemdに切り替えられているため、良い起動になる可能性があります)。

  2. 起動時に実行を放棄し、後で実行してみてください。

たとえば、initシステムは依然としてかなり断片化されていますが、シェルログインはほとんど普遍的です。$HOME/.shellrcまだ実行されていない場合は、実行している各jarに数行を追加できます。これにより、作業量が減り、より一般的に適用可能になります。

明らかな利点1は、ユーザーが何も表示する前にjarを実行することです。ただし、2これは自動ログインを設定することで軽減できます(セキュリティ上良い考えではありません)。

これがGUI jarの場合、かなりの追加の問題が発生します。 jarを実行できるようにXまたはWaylandを起動すると、決定したソリューションに少なくとも数行が追加されます。

おすすめ記事