在启动或引导时运行 shell 脚本

ppp*_*ppp 7 startup boot scripts 11.10

简而言之,我的问题是每次使用计算机时都必须运行脚本,因此我试图使该过程自动化一点。

我的系统有 nvidia gt540m vga 卡。卡是双的。它有一张用于要求苛刻的任务的高端卡,它使用低端板载卡处理其他所有事情。

目前 Ubuntu 不支持这种类型的 vga 卡,它始终为它们供电,只使用板载卡。

这导致电池寿命非常低。

我对 ubuntu 比较陌生,因此在实际找到解决问题的脚本之前,我必须学习大量教程。

我下载了一个 acpi_call 文件夹到目录 /home/anpel,然后使用以下命令,我杀死了卡:

cd /acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh
Run Code Online (Sandbox Code Playgroud)

下一步,由于我每次启动时都必须手动运行命令,因此在我的桌面上制作一个 shell 脚本,我运行它,它会提示我输入密码,在提供密码后,它会杀死我的卡。该脚本如下所示:

cd ~/acpi_call
sudo insmod acpi_call.ko
sudo ./test_off.sh
echo VGA card dead
exit
Run Code Online (Sandbox Code Playgroud)

现在,我试图让我的系统每次启动时都运行这个脚本,所以我不必每次都手动执行。

在没有至少一些指导的情况下,我没有对我的系统进行任何更改的经验,因为我认为我很可能会把一切都搞砸,而且我不知道如何清理我的烂摊子,所以我还没有真正尝试过任何东西,但我读到将我的脚本添加到 /etc/rc.local 文件将完成工作。

这是真的还是我必须尝试其他一些东西?

- - 编辑 - - -

我使用 ubuntu 11.10,抱歉没有提到。

Ric*_*way 9

要在启动时运行的脚本的正确位置是从 /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.
Run Code Online (Sandbox Code Playgroud)


Cen*_*usA 3

您可以将脚本文件作为启动应用程序运行(Ubuntu 10.04 LTS 中的系统 - 首选项 - 启动应用程序 - 不确定 11.10 中的等效项在哪里)。

例如,为了inosync在启动时运行该实用程序,我在启动应用程序中添加了一个条目

Name=inosync
Command=/home/toaster/inosync.sh
Comment=Mirror DataDisk to Barracuda_01 
Run Code Online (Sandbox Code Playgroud)

bash 脚本文件inosync.sh必须启用才能执行。这可以通过sudo nautilus在终端中使用来实现,导航到文件,右键单击并选择“属性”,转到“权限”选项卡,然后选中“允许将文件作为程序执行”。

  • 启动应用程序在您登录时运行,而不是在系统启动时运行。 (4认同)