別のユーザーとしてプログラムを実行するときにTSTPを伝播する方法

別のユーザーとしてプログラムを実行するときにTSTPを伝播する方法

次のように「su」を介してターミナルアプリケーションを実行しています。

su -c "/path/to/app --args" username

これは、「username」がシステム上の権限の低いユーザーであるルートコンテキストで行われます。アプリケーションには、CTRL-CとCTRL-Z(それぞれSIGINTとSIGTSTP)の信号ハンドラがあります。私が経験している奇妙な問題の1つは、「su」を介してこのように実行するとCTRL-Zがアプリケーションに伝播しないようです。上記のコマンドの最後から「username」を削除すると正常に動作します。この信号は、suを使用するユーザースイッチがある場合にのみ機能します。

TSTPを他のユーザーとして実行されているプログラムに伝播させる方法はありますか?

CentOS 6.4を使用してテストされました。

答え1

mdpcの提案に従って、「su」の代わりに「sudo」を使用すると問題が解決されました。

関連情報