
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.service
、systemctl daemon-reload
root として実行し、サービスを登録します。次に、を実行して、systemctl enable blah.service
新しいサービスの自動起動を有効にします。
systemdユニットファイルの書き方の詳細については、このリンク。