SIGTSTPを捕まえないトラップ

SIGTSTPを捕まえないトラップ

ログインプロンプトを常に表示するスクリプトがあります。

#!/bin/bash
trap '' 2 20
while true; do
    login
done

これは大きなプロジェクトの一部なので、システムログインプロンプトを使用するように言わないでください。これはシェルスクリプトを介して行う必要があります。

ループの理由は、ユーザーがログアウトすると、スクリプトがログインプロンプトからそのユーザーを削除するためです。

唯一の問題は、スクリプトとプロンプトをCtrl+CまたはCtrl+して終了できることです。トラップは+をZ停止しますが、何らかの理由で+を使用してスクリプトを停止できます。私はこれがログインコマンドに関連していることを知っています。なぜなら、ログインをthen +などの他のコマンドに置き換えると、もはやスクリプトを停止しないからです(IEはhelloを印刷し続けます)。CtrlCCtrlZecho helloCtrlZ

Ctrl+をどのようにキャプチャできますかZ

関連情報