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
に追加された命令を書き加えるのがよいのでしょう。