x〜y時間の間だけプロセスを実行することを許可する

x〜y時間の間だけプロセスを実行することを許可する

モバイルデータ接続サービスを使用しています。午前9時から午後4時までは無制限の帯域幅を使用できます。

プログラム外でDropboxアプレットなどのアプリケーションを「ミュート」する方法を知りたいです。

Dropboxバイナリを次のスクリプトに置き換えることを検討しました。

#!/bin/bash
H=`date +"%H"`
if (($H >= 9 && $H < 16))
then
    echo "run dropbox here"
fi

誰もがより良いアイデアを持っているかどうか疑問に思います。つまり、私のソリューションでは、Dropboxは午後4時以降も実行を続け、午前9時前にコンピュータの電源を入れても起動しません。 Wi-Fiを使用する場合、制限が課されない場合は素晴らしいです。

誰にも解決策があるかどうか疑問に思います。システムまたは予約されたことまたはそのようなもの。私はこれらのツールが非常に強力であることを知っていましたが、他のものはまったく知りませんでした。

(私のシステム:XUbuntu 15.04、つまりxfce4とsystemd)

ベストアンサー1

cronデーモンプロセスを開始および終了するために使用されます。 dropboxはユーザーとして実行されるため、cronjobをuser:として編集し、crontab -eエディタに次のように入力します。

0 9 * * * $HOME/bin/dropbox-daemon-path
59 16 * * * pkill -u "$LOGNAME" dropbox-daemon-process-name

午前9時にDropboxデーモンを起動し(ここにフルパスを提供する必要があります)、午後5時1分前にそのユーザーのDropboxデーモンを終了します。

誰かの答えを聞きたいですsystemd

編集:Gilesが指摘したように、システムが次の場合は役に立ちません。電源が入っている9時から17時まで。繰り返しsystemdますが、このcronjobアプローチは最適ではありませんが。

#!/bin/bash
hour=$(date +%H)
[ $hour -lt 09 -o $hour -gt 16 ] && exit
#else
exec path-to-dropbox-daemon

crontabを少し修正してください。

* 9-16 * * * $HOME/bin/dropbox-wrapper-script
59 16 * * * sleep 50; pkill -u "$LOGNAME" dropbox-daemon-process-name

私にとってはきれいではありません。スクリプトは1分ごとにcronによって実行され、数行のログを残します。しかし、効果的でなければなりません。

おすすめ記事