不久前,我在一台旧电脑上用 Lubuntu 14.04 替换了 XP,效果很好。为了完美运行,我想在启动或引导时自动执行“xrandr --output VGA-1 --gamma 3:3:3 --brightness 1”。这样就不必每次都手动执行了。使用互联网时,我考虑使用以下方法:
vi file.sh
cp file.sh /xrandr --output VGA-1 --gamma 3:3:3 --brightness 1/init.d/file.sh
chmod +x /xrandr --output VGA-1 --gamma 3:3:3 --brightness 1/init.d/file.sh
sudo update-rc.d file.sh start 99 2 .
sudo update-rc.d -f file.sh remove
但在第二个命令行上,我收到错误:“未找到 E486 模式”。我做错了什么?
先感谢您。
答案1
您发布的代码存在几个语法问题,但这不是主要问题。
init
像(et al) 这样的低级系统的问题update-rc.d
在于它们会在 X 启动之前运行。即使在像 Upstart 这样的事件系统中,你可以等待starting-x
,但你仍然在 X 环境之外,并且缺少DISPLAY
变量之类的东西。这显然是一个巨大的问题,比如xrandr
你需要X 服务器。
值得庆幸的是,X(或者我应该说加载 X 的脚本)~/.xsession
在启动时会查找文件。这是存放此类命令的绝佳位置。它必须是可执行的,并且包含适当的启动节。我们可以用一个命令完成所有这些操作:
install -b -m 755 /dev/stdin ~/.xsession << EOF
#!/bin/sh
xrandr --output VGA-1 --gamma 3:3:3 --brightness
EOF
只需将其粘贴进去,它就会创建文件。下次登录时,它就会运行。
答案2
在第二行中,您正在复制file.sh
到/xrandr --output VGA-1 --gamma 3:3:3 --brightness 1/init.d/file.sh
。这不是文件夹。这是一个命令。您不能复制到命令。也许您想将命令放入 IN 中file.sh
,然后将其复制到某个地方?在第三行中,您犯了同样的错误。您正在对命令进行 chmodding,而不是对文件或文件夹进行 chmodding。这同样是不可能的。
你可能想要做的是:
echo "/xrandr --output VGA-1 --gamma 3:3:3 --brightness 1" > file.sh
cp file.sh /to/wherever/it/needs/to/be
chmod +x /to/wherever/it/needs/to/be/file.sh