如何使用脚本关闭无头机器电源

如何使用脚本关闭无头机器电源

我有一个 Java 应用程序,当无头计算机(Ubuntu 14.04 Server)启动并以用户身份运行时,它会自动启动。当应用程序完成时,我需要它执行一个脚本来关闭电源,因为即将抛出一个外部断路器,这将切断电源。

如果下次启动时检测到关闭错误,我不能允许挂起。

我尝试编写脚本都会导致请求超级用户的密码。我可以接受脚本中文本形式的密码,因为机器与互联网隔离。

我不精通 bash 或 Linux。

脚本权限:

$ ls -la shutdown
-rwsr-xr-x 1 root root 209 Mar 18 16:55 shutdown

答案1

有多种方法可以做到这一点。最简单也是最糟糕的是按照您的建议在脚本中包含密码。由于您的计算机未连接到互联网,因此大多数安全问题都没有实际意义,您可以使用sudo-S选项来允许从 STDIN 传递密码:

echo password | sudo -S shutdown -h now

更安全的方法是允许特定用户shutdown在没有密码的情况下运行该命令。首先,运行visudo编辑sudoers文件并添加以下行:

nate  ALL=NOPASSWD:/sbin/shutdown

这将允许用户在不要求密码的情况下nate运行。sudo /sbin/shutdown

相关内容