在啟動或引導時執行 shell 腳本

在啟動或引導時執行 shell 腳本

簡而言之,我的問題是每次使用計算機時都必須運行腳本,因此我嘗試使該過程自動化一些。

我的系統有 nvidia gt540m vga 卡。該卡是雙卡的。它有一張高階卡來完成要求較高的任務,並使用低階板載卡來完成其他任務。

Ubuntu 目前不支援這種類型的 vga 卡,並且僅使用板載卡時,它始終為它們供電。

這會導致電池壽命非常短。

我對 ubuntu 相當陌生,所以在真正找到解決問題的腳本之前,我必須遵循大量教程。

我將 acpi_call 資料夾下載到目錄 /home/anpel 中,並使用以下命令殺死該卡:

cd /acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh

下一步,因為我每次啟動時都必須手動運行命令,所以我在桌面上創建一個 shell 腳本,運行該腳本時,它會提示我輸入密碼,提供密碼後,它會殺死我的卡。該腳本如下所示:

cd ~/acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh
echo VGA card dead
exit

現在,我試圖讓我的系統在每次電腦啟動時運行此腳本,這樣我就不必每次都手動執行此操作。

我沒有經驗在沒有任何指導的情況下對我的系統進行任何更改,因為我認為我很可能會把一切搞砸,而且我不知道如何清理我的混亂,所以我還沒有真正嘗試過任何東西,但我讀到將我的腳本添加到/etc/rc.local 檔案中就可以完成工作。

這是真的還是我還必須嘗試其他方法?

- - 編輯 - - -

我使用 ubuntu 11.10,抱歉沒有提到這一點。

答案1

要在啟動時運行的腳本的正確位置是從 /etc/rc.local 呼叫腳本

文件中的註解總結如下:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

答案2

您可以將腳本檔案作為啟動應用程式運行(Ubuntu 10.04 LTS 中的系統 - 首選項 - 啟動應用程式 - 不確定 11.10 中的等效項在哪裡)。

例如,為了inosync在啟動時運行該實用程序,我在啟動應用程式中新增了一個條目

Name=inosync
Command=/home/toaster/inosync.sh
Comment=Mirror DataDisk to Barracuda_01 

bash 腳本檔案inosync.sh必須啟用才能執行。這可以透過sudo nautilus在終端機中使用來實現,導航到文件,右鍵單擊並選擇“屬性”,轉到“權限”選項卡,然後選中“允許將文件作為程式執行”。

相關內容