特定のユーザーがログアウトしたときにスクリプトを実行する

特定のユーザーがログアウトしたときにスクリプトを実行する

特定のユーザーがログアウトしたときにアプリケーションを画面で実行し、ユーザー リストの誰かがログインしたときに画面を終了する必要があります。そこで、cron から定期的に呼び出される bash スクリプトについて考えています。

  1. 特定のユーザーがログインしているかどうかを確認します。
  2. 誰もログインしていない場合 - 画面を起動して pid をファイルに保存するか、pid ファイルが既に存在する場合は何もしません。
  3. 誰かがログインしている場合 - ファイルからPIDを読み取り、画面を終了する

私は、cron から定期的に実行されるスクリプトを排除する、より洗練された代替手段を探しています。

答え1

いくつかの明らかな選択肢:

  1. ログアウトフックを追加するように変更します/etc/profile(または、システムに既にログアウトフックファイルがある場合は、それを変更してください)。
  2. システム PAM 設定を変更して、追加のセッション コントローラを追加します (pam_script ライブラリは特にこれに対処します)
  3. 検討中のユーザーのログインシェルを変更して、起動時に他のプログラムを終了し、実際のログインシェルを起動し、実際のログインシェルが終了したら screen プログラムを起動するようにします。
  4. (コンソールログインのみを気にする場合)gettyを置き換える

関連情報