Linux の Windows スタートアップ フォルダに相当するもの

Linux の Windows スタートアップ フォルダに相当するもの

Linux の起動時に実行したいスクリプトがあります。Windows にはスタートアップ フォルダーがあり、Linux にもスタートアップ フォルダーがあることは知っています。調査したところ、さまざまなファイルがあり、多くの矛盾する回答が見つかりました。パス:

/etc/systemd/system

使用されているようです。もう 1 つは次のようになります。

/etc/rc.local

また、次のようなものも見ました:

/etc/init.d

すべての Linux ディストリビューション、または少なくともほとんどの Linux ディストリビューションに存在する Windows スタートアップ フォルダーに相当する Linux のパスを知りたいだけです。また、そのディレクトリにスクリプトを配置して、起動時に実行できるようにしたいと考えています。これらの要件を満たすパスは何ですか。

答え1

自動起動のほとんどの形式は、使用する init システム (sysv と systemd と upstart)、デスクトップ環境 (GNOME/KDE と非 XDG のもの) など、インストールによって異なります。

Cron はほとんどの Linux システムに存在し、自動起動に使用できます。 に次の行を追加します/etc/crontab:

@reboot /usr/bin/blah

/usr/bin/blah実行したいコマンドはどこでしょうか。

ログイン時にプログラムを起動したい場合、XDG準拠のデスクトップ環境(GNOMEやKDEなど)を使用している場合は、.desktopにファイルを置いてください~/.config/autostart。ファイルの例については.desktopアーチウィキ

あるいは、Linux ディストリビューションが systemd を使用している場合は、ユニット ファイルを作成することもできます。例:

[Unit]
Description=autostart something

[Service]
Type=oneshot
ExecStart=/usr/bin/blah

[Install]
WantedBy=multi-user.target

上記のテキストを入力して/etc/systemd/system/blah.servicesystemctl daemon-reloadroot として実行し、サービスを登録します。次に、を実行して、systemctl enable blah.service新しいサービスの自動起動を有効にします。

systemdユニットファイルの書き方の詳細については、このリンク

関連情報