我有两个脚本。这些都被简化了。root-script.sh
来电userscript.sh
:_
根脚本.sh:
#!/bin/bash
su - user1 -c "/user1path/user-script.sh"
用户脚本.sh:
#!/bin/bash
trap 'echo please use x for exit' 2
while x=0; do
read -p "enter x for exit:" answer
if [[ $answer = 'x' ]]; then
echo "exit now"
exit 0
fi
done
如果我调用 user-script.sh 它就可以正常工作:
enter x for exit:
enter x for exit: ^C_please use x for exit
^C_please use x for exit
x
exit now
如果我调用root-script.sh
asroot
并输入 Ctrl-C 我得到
enter x for exit: ^C
Session terminated, killing shell... ...killed.
比我找回根提示符,但提示符被阻止了。使用 ps 我看不到根脚本,只有用户脚本。如果我终止用户脚本,则根提示符将再次可用。
如何防止 root-script-user-script-construction 在 SIGINT 之后挂起?对我来说意味着
- 退出
root-script.sh
和user-script.sh
或 root-script-user-script-construction 应该与
user-script.sh
- bash 版本:3.2.51(1)-release (x86_64-suse-linux-gnu)
- 操作系统版本:sles11 3.0.93-0.8-default