使用root privelidges运行的Ubuntu的Autoexec.bat等价物?
在Ubuntu上必须有几个“ autoexec.bat
”等价物,因为我可以看到像rc.local
这样的文件似乎做得很少,因为文件中的注释说它默认不起作用我尝试将此命令放在那里它不起作用。
我需要知道的是我放置这条线的地方。
echo 0 | /usr/bin/tee -a /sys/class/leds/smc::kbd_backlight/brightness
我也在/etc/init.d
看到了一个rc.local
,但是我放置cmd以使其工作是一个谜,因为那里有两个函数,所以我把它放在其中一个函数的末尾还是在最后一行?
该命令需要root权限才能运行,理想情况下,它应该在计算机启动时执行。 当命令使MacBook Air的键盘变暗时。
此外,如果只有特定用户运行此命令,我还想知道我需要编辑哪个文件。 作为一个root命令,我不想给该用户提供admin或sudo访问权限,我希望这个命令在用户登录时以root身份执行,并且用户无法停止该命令的运行。
其他发现
$HOME/.profile
是登录脚本,但不以root用户身份运行,如果你sudo命令但是我不需要它就可以。
/etc/profile
很奇怪,它不会在启动时执行,但是当我进入shell并执行sudo -i
它会在sudo进入交互模式时立即运行
一个整洁的捷径
对于版本14.04,可能在早期版本中工作,您只需使用sudo crontab -e
向crontab添加一行并添加一行“@reboot whatevercommandwithfullpath”并且它可以正常工作。 但是在这个新版本中,我创建了一个新的脚本,它更接近应该如何完成。
你可以创建一个守护进程女巫是正确的方法。 然而,它比rc.local有点难。
请看这里: https : //superuser.com/questions/530071/installing-daemon-on-a-fresh-ubuntu-system
详细的帮助(你可以举例说明/etc/init.d/hostname):
复制骨架:
sudo cp /etc/init.d/skeleton /etc/init.d/keyboard_backlight
编辑骨架:
sudo nano /etc/init.d/keyboard_backlight
寻找这个
do_start() { # Return # 0 if daemon has been started # 1 if daemon was already running # 2 if daemon could not be started start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON --test > /dev/null \ || return 1 start-stop-daemon --start --quiet --pidfile $PIDFILE --exec $DAEMON -- \ $DAEMON_ARGS \ || return 2 # Add code here, if necessary, that waits for the process to be ready # to handle requests from services started subsequently which depend # on this one. As a last resort, sleep for some time. }
并改变它:
do_start() { echo 0 | /usr/bin/tee -a /sys/class/leds/smc::kbd_backlight/brightness }
注释掉或删除do_stop和do_reload中的行
do_stop() { } do_reload() { }
保存文件。
授予文件执行权限:
sudo chmod 755 /etc/init.d/keyboard_backlight
测试你的服务:
sudo /etc/init.d/keyboard_backlight start
如果一切正常,请加载您的服务以启动
sudo update-rc.d keyboard_backlight defaults 99
最好的祝福。
也许,对于登录shell,它们按以下顺序运行:
1./etc/profile 2./etc/profile.d/ files 3.$HOME/.bash_profile 4.$HOME/.bash_login
但是,我不确定/ etc / profile是否在任何用户实际登录之前执行,但是如果我是对的,那么值得尝试。
这仍然有效吗?
此脚本将在图形界面出现之前运行…
使用所需命令创建脚本。 vi file.sh
将脚本复制到/etc/init.d cp file.sh /etc/init.d/file.sh
更改权限以允许执行chmod + x /etc/init.d/file.sh
在/etc/init.d链接它! sudo update-rc.d file.sh start 99 2。 (不要忘记命令末尾的“。”)
如果您需要在不久的将来禁用此脚本:sudo update-rc.d -f file.sh remove
这种方式看起来很简单,你可以为不同的东西保留不同的脚本
很可能你正在寻找/etc/rc.local
如果你在exit 0
之前添加任何应该以root身份运行的命令。
不要忘记将/etc/rc.local
和/etc/init.d/rc.local
permisson更改为可执行文件,除非它不起作用,如果它们已经可执行则保持原样。