在启动或引导时运行 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在终端中导航到文件、右键单击并选择属性、转到权限选项卡并选中“允许将文件作为程序执行”来实现。

相关内容