我正在通过“su”以这种方式运行终端应用程序:
su -c "/path/to/app --args" username
这是从根上下文完成的,“用户名”是系统中特权较低的用户。该应用程序具有 CTRL-C 和 CTRL-Z 的信号处理程序(分别为 SIGINT 和 SIGTSTP)。我遇到的一个奇怪的问题是,当以这种方式通过“su”运行时,CTRL-Z 似乎不会传播到应用程序。如果我从上面命令的末尾删除“用户名”,那么它就可以正常工作。只有当有使用su的用户切换时,该信号才起作用。
有没有办法允许 TSTP 传播到以不同用户身份执行的程序?
使用 CentOS 6.4 进行测试; GNU Coreutils 8.4
答案1
按照 mdpc 的建议,使用“sudo”而不是“su”解决了问题。