bash プロセスはデフォルトのシグナル ハンドラー/トラップをどこで取得しますか?

bash プロセスはデフォルトのシグナル ハンドラー/トラップをどこで取得しますか?

から https://stackoverflow.com/questions/50606753/do-getrlimit-and-setrlimit-work-by-reading-from-and-writing-to-etc-sec#comment88227414_50607042

Bash には SIGQUIT 用の特別なハンドラがなく、コア ダンプの作成プロセスには関与しません。カーネルは、コア ダンプの rlimit が十分に大きい場合にのみ、SIGQUIT の「デフォルト アクション」の一部としてコア ダンプを書き込みます。この rlimit は、limits.conf の内容に従ってログインによって確立されているか、ulimit などを使用して手動で調整されている可能性があります。

「Bash には SIGQUIT 用の特別なハンドラーがありません」というのがよくわかりません。

すべてのプロセスには、たとえ一部がデフォルトであってもシグナル ハンドラーがあり、通常、プロセスはデフォルトのシグナル ハンドラーを取得し、そこからfork()親からシグナル ハンドラーをコピーし、execve()シグナル ハンドラーを変更しないというのは正しいですか?

bash プロセスはデフォルトのシグナル ハンドラー/トラップをどこで取得しますか?

loginAPUE では、 (またはgetty起動シーケンス内の他のプログラム) が、デフォルトのシグナル ハンドラー (およびリンクのトピックの中心である からのリソース制限) を設定し、それをログイン シェルに渡す最初のプログラムであるかどう/etc/security/limits.confかがわかりません。

正しくログインすると、ログインは

• ホームディレクトリに変更する(chdir)

• 端末デバイスの所有権を変更(chown)して、所有する

• 端末デバイスのアクセス権限を変更して、読み取りと書き込みの権限を付与します。

• setgidとinitgroupsを呼び出してグループIDを設定する

• ログインが持つすべての情報(ホームディレクトリ(HOME)、シェル(SHELL)、ユーザー名(USERとLOGNAME)、デフォルトパス(PATH))を使用して環境を初期化します。

• ユーザーID(setuid)に変更し、ログインシェルを起動します。

execl("/bin/sh", "-sh", (char *)0);

関連情報