Arch Linuxが起動して1分後にスクリプトを実行する

Arch Linuxが起動して1分後にスクリプトを実行する

私はnetctlを使ってeth0とwlan0の間にブリッジを設定しました。起動時にeth0とwlan0を設定するように指示し、起動後にブリッジを手動で起動すると正常に動作します。ブリッジを自動的に起動するように指示すると、何らかの理由で WLAN アダプタがアクセス ポイントに接続できません。したがって、システム全体の起動が完了してから1分ほど実行するには、「netctl startbridge」が必要です。私が何をすべきか知っていますか?

PS。これはヘッドレスシステムで、xorgがないため、xorgの起動時に実行すると機能しません。

答え1

systemdタイマーを使用して、起動後1分間スクリプトを実行できます。

まず、サービスファイル(/etc/systemd/system/myscript.service)を作成します。

[Unit]
Description=MyScript

[Service]
Type=simple
ExecStart=/usr/local/bin/myscript

次に、タイマー(/etc/systemd/system/myscript.timer)を作成します。

[Unit]
Description=Runs myscript one minute after boot

[Timer]
# Time to wait after booting before activation
OnBootSec=1min
Unit=myscript.service

[Install]
WantedBy=multi-user.target

今すぐ有効にして実行します。

# systemctl enable myscript.timer
# systemctl start myscript.timer

答え2

Archはsystemdを使用して起動プロセス(およびデーモンなど)を管理します。

必要なコマンドを簡単に実行するスクリプトを作成することも、しばらく待ってから実行することもできます。次に、上記の手順に従って起動プロセスに追加します。

ウィキペディア

睡眠を追加する場合:

#!/bin/sh
sleep 60 # one min
netctl start bridge

それはうまくいきます。 Systemdはスクリプトを実行するときに別のプロセスを作成し、システムが中断されないようにする必要があります。

答え3

簡単な非ブロック機能が必要な場合は、/etc/rc.localに以下を追加してください。

( sleep 60 && /path/to/command_or_script [opts] ) &

関連情報