crontabを使用してyumアップデートスクリプトを実行したいと思います。問題は、スクリプトを一度実行してから、yumがしばらく停止して再実行できないことです。次のエラーが発生します。
$ sudo yum update
Existing lock /var/run/yum.pid: another copy is running as pid 5248.
Another app is currently holding the yum lock; waiting for it to exit...
The other application is: yum
Memory:...
Started:... 5 day(s) ago...
State: Sleeping, pid: 5248
これが私がcrontabに入れたものです:
$ sudo crontab -e
0 4 * * *
/usr/local/bin/yum_updates.sh
スクリプトの内容は次のとおりです。
$ sudo vim /usr/local/bin/yum_updates.sh
#!/bin/bash
yum makecache
yum -y update
yum -y upgrade
mandb
yum-cronを考えましたが、設定ファイルを見てみると、crontabほどカスタマイズできないようです(つまり、1日はセキュリティ更新プログラムを実行できず、他の日は完全な更新を実行できません)。しかし、私が間違っている場合は修正してください。 、私はyum-cronをあまり使用しませんでした。
crontabを使用してプログラムをハイジャックしたり、一度だけ実行した後にプロセスが中断されずにスクリプトを実行できるように、このエラーを停止する方法を知りたいです。
ベストアンサー1
スクリプトを次に変更します。
#!/bin/bash
#this line will kill that process is runing yum
kill -9 `ps -aux | grep yum |tr -s " " : | cut -f2 -d : | head -1`
yum makecache
kill -9 `ps -aux | grep yum |tr -s " " : | cut -f2 -d : | head -1`
yum -y update
yum -y upgrade
mandb