systemd-coredump - 無効な引数

systemd-coredump - 無効な引数

systemd-coredumpを使用してコアダンプを強制的に実行しようとしていますが、ログを確認すると次のエラーが表示されます。

[Eメール保護]: NETWORK フェーズで /lib/systemd/systemd-coredump の作成中に失敗しました。引数が間違っています。

コアがないと報告しますcoredumpctl

私のコアパターンは次のとおりです。

|/lib/systemd/systemd-coredump %P %u %g %s %t %c %e

/lib/systemd/systemd-coredumpが存在し、実行可能です。 /etc/systemd/coredump.confで、すべてがコメントアウトされていることを確認しました。

[Coredump]
#Storage=external
#Compress=yes
#ProcessSizeMax=2G
#ExternalSizeMax=2G
#JournalSizeMax=767M
#MaxUse=
#KeepFree=

...これは不思議です...

拡張core_patternのパラメータがsystemd-coredumpに入力されたときにこれを「プレビュー」する方法はありますか?だからそこに奇妙なことが起こっているかどうかを確認することができます。

編集する

また、次のファイルを指すようにcore_patternを設定してみました。

bash -c 'echo "/home/root/core.%e.%p" > /proc/sys/kernel/core_pattern'

そして

ulimit -c unlimited

しかし、これもうまくいきません。コアファイルは生成されません。

ベストアンサー1

回避策を使用してコアを特定できました。これはまだ質問に対する答えではありませんが、少なくともそれは私をゴビから逃げました。

私は独自のスクリプトを作成しました。

#!/bin/bash 
echo $@ > /home/root/arguments.txt

if [ -p /dev/stdin ]; then
    echo "Data was piped to this script!" >> /home/root/arguments.txt
    cat > /home/root/core.bin 
else
    echo "No data received" >> /home/root/arguments.txt
fi

代わりに、このスクリプトを介してパイプするようにcore_patternを設定してください。systemd-coredump

これにより、スクリプトに渡されたパラメータを見ることができ(したがって、質問のその部分に対する答えを得ることができます!)、コアarguments.txt自体が作成されています。core.bin

(少なくとも私はそれがコアだと思います。それは私に多くの情報を提供しませんが、gdbに最初に触れたので、おそらくそうです。)

おすすめ記事