bash脚本中的sudo命令暂停脚本

礼节

我有一台2009年初的iMac传感器出现问题。ODD和CPU风扇全速运行。为了在Ubuntu中将它们降低到最低速度,我需要使用此方法在终端中设置速度我没有在每次启动后执行此操作,而是创建了一个bash脚本来为我执行此操作,但是它不起作用。

这是我的脚本:

#!/bin/bash
echo "Beginning script..."
echo "Logging in as root..."
sudo su
cd /sys/devices/platform/applesmc.768/
echo "Enabling manual override for Fan 1 (ODD fan)..."
echo '1' > fan1_manual
echo "Setting speed of Fan 1 (ODD fan) to 1650 RPM..."
echo '1650' > fan1_output
echo "Enabling manual override for Fan 3 (CPU fan)..."
echo '1' > fan3_manual
echo "Setting speed of Fan 3 (CPU fan) to 1200 RPM..."
echo '1200' > fan3_output
echo "Done."

问题出在“ sudo su”。它提示输入密码,但是输入密码后,什么也没有发生。它只是停止。

这是截图

用户名

您的脚本停止,因为sudo su启动了一个新的Shell进程。您原始的shell进程-运行脚本的进程-等待子shell结束。

我建议使用root特权运行整个脚本,而不是要求从脚本本身以root用户身份登录。sudo su从代码中删除部分,然后运行脚本,如下所示:

$ sudo ./yourscript

这是常见的做法。请注意,像这样的系统管理脚本update-grub不需要输入root密码-只是希望它们以root身份运行。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章