"kill -l"はZERRのみを返します。

送信しようとすると、SIGQUIT次のメッセージが表示されます。

$ kill -s QUIT 4341      
kill: unknown signal: SIGQUIT
kill: type kill -l for a list of signals

私はこれを見て驚きました:

$ kill -l
ZERR

だから何とかkillすべての信号名がわかりません。これがUbuntuの素晴らしい点です(はい、アップグレードする時間ですが、それは別の質問です)

当然SIGQUIT数字だけで送るのですが3kill信号名を忘れてしまう原因は何ですか?

UPD:これはzshです。

$ type kill     
kill is a shell builtin                
$ echo $ZSH_VERSION $ZSH_PATCHLEVEL                                                             
5.0.2 1.5778                           

うまくいくかどうかを確認したので、/bin/killzshに関連することに違いありません。

ベストアンサー1

これは、zsh実行可能ファイルの構築方法に問題があるようです。シグナルのリストは、コンパイル時にオペレーティングシステムによって決定されます。信号ではなくエラーによる終了を示す「偽信号」がリストの最後に追加されZERRます。ビルドでは、オペレーティングシステムのシグナルリストが空です。

ステファン・チャゼラスが犯人を識別する、これは最新バージョンのGCCコンパイラとのビルドスクリプトの非互換性が修正されました。。最新バージョンのzshをビルドすると、問題を解決する必要があります。しかし、Ubuntu artfulには、あなたのバージョンよりも新しいバージョンのzsh 5.2が付属しています。以前の長期サポートバージョンのUbuntuにも5.1.1があります。したがって、互換性テストに以前のバージョンが必要ない限り、独自のバージョンを維持する理由はありません。この以前のバージョンを維持する必要がある場合は、以前のバージョンのGCCでビルドしてください。

おすすめ記事