Arch Linux 啟動一分鐘後運行腳本

Arch Linux 啟動一分鐘後運行腳本

我已經用 netctl 在 eth0 和 wlan0 之間建立了一座橋。如果我告訴它在啟動時配置 eth0 和 wlan0,然後讓我在啟動後手動啟動網橋,它就可以正常工作。如果我告訴網橋自動啟動,儘管出於某種原因,WLAN 適配器無法連接到存取點。因此,我需要“netctl startbridge”在整個系統完成啟動後運行一分鐘左右。知道我該怎麼做嗎?

附言。這是一個無頭系統,因為沒有 xorg,所以在 xorg 啟動時運行它是行不通的。

答案1

您可以使用 systemd 計時器在啟動後一分鐘執行腳本。

首先,建立服務文件(/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] ) &

相關內容