web-dev-qa-db-ja.com

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

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

/etc/systemd/system

使用されているようです。もう1つは:

/etc/rc.local

そして私も見ました:

/etc/init.d

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

3
user767415

自動起動のほとんどの形式は、インストールによって異なります。使用する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ユニットファイルの書き方については、 このリンク をご覧ください。

6
Tu Dinh