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に最初に触れたので、おそらくそうです。)