0

似乎Ctrl+c无法识别。虽然我在终端中运行Ctrl+c被识别,并且它会按预期发出信号处理函数。但是当脚本作为启动脚本运行时,它应该识别Ctrl+c并进入信号处理程序,但它没有发生。这是脚本的一部分..

def signal_handler(signal, frame):
    print 'Going to Linux terminal....'
    sys.exit(0)
print 'Press Ctrl+C to abort script and enter Linux terminal....'
signal.signal(signal.SIGINT, signal_handler)
time.sleep(5)

脚本工作正常,但问题是它没有得到终端。ssh 到 termianl 是可能的,

提前致谢

4

1 回答 1

2

当您在脚本中收到CTRL-C事件时,您的脚本将自行终止。它不会终止整个引导序列。

检查确实退出到 shell 的引导脚本(使用命令检查磁盘的脚本fsck),您将看到如下内容:

# Start a single user shell on the console
if ! sulogin $CONSOLE
then
    log_failure_msg "Attempt to start maintenance shell failed. 
Continuing with system boot in 5 seconds."
    sleep 5
fi

sulogin在这种情况下就是这样做的。

于 2013-01-25T08:01:57.633 回答