如何通过脚本在没有用户输入的情况下停止系统?

如何通过脚本在没有用户输入的情况下停止系统?

我的系统无需任何操作,通电即可启动,并在启动结束时通过配置文件归档/etc/init。这将启动启动软件的脚本。该脚本将等待最后一个应用程序退出(其他应用程序已经退出),然后尝试以便可以安全关闭计算机。

我无法做到工作。如果计算机没有正确关闭,它可能下次供电时就会挂起,因为它似乎永远在等待响应。

我尝试编辑/etc/sudoers允许/sbin/halt为了不需要密码,尝试使用包含命令的脚本执行相同操作/sbin/halt但什么都不起作用;最后一个应用程序运行、退出,然后什么都没有发生。

如何编写脚本来自动机器?

/etc/init conf文件:

description "Copies fireimager executeables to the ram disk and executes them."
author "Robert Lockwood"

start on net-device-up
stop on shutdown

script
echo "[`date`] Fireimager initializing Started" >> /var/log/fireimager.log
exec /home/programmer/bin/init/inittest

end script

/home/programmer/bin/init/inittest (片段)

#!/bin/bash
# this script is extecuted by root when the interfaces become active.
# when the last application shuts down the computer is commanded to shut down.

# start the micro-server 
su -c "/home/programmer/bin/startServer &" user-name password -

# start fireimager controller 
su -c "/home/programmer/bin/startController" user-name password -
# following appears in the log
echo "[`date '+%a %b %2d %T.%3N %Z %Y'`] Starting poweroff" >> /var/log/fireimager.log

# when the controller shuts down, then poweroff FAILS
su -c "sudo /home/programer/bin/halt" user-name password -

~/bin/halt 脚本

#!/bin/bash         
# This should halt the computer

/sbin/halt

答案1

由于你已经是 root 了,因此不需要复杂的

su -c "sudo /home/programer/bin/halt" user-name password -

把事情简单化

/sbin/halt

相关内容