Usar 'sudo' em vez de 'su' resolveu o problema, conforme sugerido pelo mdpc.
Estou executando um aplicativo de terminal por meio de "su" desta maneira:
su -c "/path/to/app --args" username
Isso é feito a partir de um contexto raiz e 'username' é um usuário menos privilegiado no sistema. O aplicativo tem manipuladores de sinal para CTRL-C e CTRL-Z (SIGINT e SIGTSTP, respectivamente). Um problema estranho que me deparei é que o CTRL-Z não parece se propagar para o aplicativo quando executado via 'su' dessa maneira. Se eu remover o 'username' do final do comando acima, então ele funciona bem. Somente quando há um switch de usuário usando su, este sinal não funciona.
Existe uma maneira de permitir que o TSTP se propague através de um programa sendo executado como um usuário diferente?
Testado usando o CentOS 6.4; GNU Coreutils 8.4
Tags command-line su suspend signals