毎月の帯域幅が制限されているため、一晩中Androidフィードを「再同期」する必要があります。
、真夜中に「repo sync」を起動し、午前8時に終了したいと思います。コマンドは次のとおりです。
2 0 * * * /home/user/android-src/reposync.sh
reposync.sh には以下が含まれます。
cd /home/user/android-src
/home/user/bin/repo sync
次のcronエントリで終了したいと思います。
55 7 * * * ps -eo pid,args | grep repo | awk '{print $1}' | xargs -I {} kill {}
0 8 * * * ps -eo pid,args | grep repo | awk '{print $1}' | xargs -I {} kill -9 {}
問題は、「reposync」が多くのプロセスを生成することです。多くの「git」、「curl」、「git-remote-http」、「python」(repoコマンドを同期するので、「bash」と「sh」と思います).shスクリプトで)。 (私の無知/用語についてお詫び申し上げます。)
それらを殺すプロセスをどのように見つけることができますか?それとももっと良い方法がありますか?リポジトリは通常のユーザーとして実行されますか?このユーザーのすべてのタスクを終了できますか?数日間、コンピュータを無人状態にして毎晩接続し、毎朝接続を切断したいと思います。たとえば、インターネット接続を終了してリポジトリを回復する必要があるなど、問題を含むすべてのソリューションを感謝します。タイムアウトのため?サーバー上の他のものは実行されていません(Win7 x64のVirtualBox、Ubuntu 10.04を実行)。それでは午前8時ごとに再起動する必要がありますか?
ベストアンサー1
kill
プロセスグループ全体を終了するには、負の引数を使用します。
#!/bin/sh
ps -eo pid,args |
awk '/[r]epo/{print $1}' |
xargs -I {} kill "$@" -{}
また、回避する方法に関する古いFAQを参照してください。役に立たない grep | grep -v grep | awk
。
これをこう呼んでください
55 7 * * * /path/to/killsync
0 8 * * * /path/to/killsync -9
2番目のことは本当に必要ではないことを願っています。役に立たないまた。
バラよりhttps://stackoverflow.com/questions/11000538/linux-kill-with-negative-pid