Linuxの起動時に実行したいスクリプトがあります。Windowsには起動フォルダーがあり、Linuxにも起動フォルダーがあることはわかっています。私はいくつかの調査を行い、多くの矛盾する答えを持つさまざまなファイルを見つけました。パス:
/etc/systemd/system
使用されているようです。もう1つは:
/etc/rc.local
そして私も見ました:
/etc/init.d
すべてまたは少なくともほとんどのLinuxディストリビューションに存在するWindowsスタートアップフォルダーに相当するLinuxのパスが必要です。また、そのディレクトリにスクリプトを配置して、起動時に実行できるようにしたいと思います。これらの要件を満たすことができるパスはどれですか。
自動起動のほとんどの形式は、インストールによって異なります。使用するinitシステム(sysv vs systemd vs upstart)、デスクトップ環境(GNOME/KDE vs非XDG環境)などです。
CronはほとんどのLinuxシステムに存在し、自動起動に使用できます。 /etc/crontab
に行を追加します:
@reboot /usr/bin/blah
ここで、/usr/bin/blah
は実行するコマンドです。
ログインするたびにプログラムを起動する必要があり、XDG準拠のデスクトップ環境(GNOMEやKDEなど)を使用している場合は、.desktop
ファイルを~/.config/autostart
に配置します。 .desktop
ファイルの例については、 Arch wiki を参照してください。
または、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ユニットファイルの書き方については、 このリンク をご覧ください。