管理者権限を持つ他のユーザーがそのスクリプトを使用しようとしている間、休止状態に移行するスクリプトを実行しているとしますpkill
。可能であれば、そのシグナルを自分のプロセスに送信したユーザーをどのようにキャプチャできますか?
kill -9 <my_script>
SIGKILLでは何もキャプチャまたは実行できないため、このような機能では何もキャプチャできないことがわかります。
ベストアンサー1
はい、可能です。スクリプトではないかもしれません。これを行うには、次のように信号ハンドラを設定する必要があります。sigaction
フラグを使用しSA_SIGINFO
、同じ署名付きハンドラーを提供します。
void handler(int sig, siginfo_t *info, void *ucontext)
信号を処理するために呼び出されたときに2番目の引数として受け取るポインタには、送信siginfo_t
プロセスのプロセス識別子()、送信プロセスの読み取りユーザー識別子()などの情報が含まれます。送信された信号を使用するために入力されます。info->si_pid
info->si_uid
kill
またはsigqueue
。
これをPythonとして実装するには多くの作業が必要です。信号モジュール構造にアクセスする方法は提供されていませんsiginfo_t
。