0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

RedHat 7でアップデートしたらrhsmdでエラー

Last updated at Posted at 2020-04-19

RedHat ES7.7でyum updateしたら
root宛に以下のメールがでるようになりました
-------
sleep: オペランドがありません
Try 'sleep --help' for more information.
/etc/cron.daily/rhsmd: 19 行: 30556 Terminated /usr/libexec/rhsmd -s
-------

なので、該当の/etc/cron.daily/rhsmdのシェルを見てみたら
-------
config=$(grep -E "^processTimeout" /etc/rhsm/rhsm.conf | grep -Po "[0-9]+")
if [ -n $config ]; then  ★
rhsmd_timeout=$config
else
rhsmd_timeout=300
fi
/usr/libexec/rhsmd -s &
sleep $rhsmd_timeout;
※このあと、rhsmdのプロセスが残っていたらkillする処理
-------

となっていて
/etc/rhsm/rhsm.confに proceessTimeoutの記述がないとき
★の行が、 if [ -n ] ; thenで実行されてしまい、
このifが本来なら偽になってrhsmd_timeout=300が代入されるべきところ、
誤って真となり、 rhsmd_timeoutに空文字が代入されて
sleep
のみ(オペランドなし)が実行されてしまっているようです。

一応、yum update時には/etc/rhsm/rhsm.conf.rpmnewはできていて
これにはprocessTimeoutが追加されてはあるのですが、
もともとrhsm.confを加工していた関係で
/etc/rhsm/rhsm.confにはprocessTimeoutがないままでした。

シェルにもprocessTimeoutがない場合の対応は書いてあるのですが
これが
if [ -n $config ]; then
となっているのが 多分バグなのでしょう。

###なので
if [ -n $config ]; then

if [ -n "$config" ]; then
に修正して 緊急対策しました。

最終的には、
/etc/rhsm/rhsm.conf.rpmnewを参考にして
/etc/rhsm/rhsm.conf
に追加された命令を書き加えるのがよいのでしょう。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?