Arch-Linux

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

  • May 19, 2018

我已經用 netctl 在 eth0 和 wlan0 之間架起了一座橋。如果我告訴它在啟動時配置 eth0 和 wlan0,然後讓我在啟動後手動啟動網橋,它工作正常。如果我告訴網橋也自動啟動,但由於某種原因,WLAN 適配器沒有連接到接入點。因此,我需要在整個系統完成啟動後執行一分鐘左右的“netctl start bridge”。知道我應該怎麼做嗎?

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

Arch 使用 systemd 來管理啟動程序(以及守護程序等)。

您可以編寫一個腳本來簡單地執行您想要的命令,或者休眠一分鐘然後執行。然後按照說明將其添加到啟動過程中

維基

如果添加睡眠:

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

它應該工作得很好。Systemd 在執行您的腳本時應該生成另一個程序,因此它不應該讓您的系統掛起。

您可以使用 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

引用自:https://unix.stackexchange.com/questions/138281