まあ何に使うかはともかく、電源入れっぱなしのマシンにして何がしかのサービスをさせようと思うと、定期的にプログラムを起動するための設定、crontabをちょっと調べてみました。
自分がcrontabのこと調べてた時は、/etc/crontabに定期的に動かしたコマンドを登録して、crondデーモンを再起動したもんですが、今はだいぶ変わりましたね。(便利になった)
- crontabの登録
- crontabの確認
- crontabの場所
これは簡単で、以下のコマンドでOKです。
$ crontab -e
/etc/crontabはroot権限がないと編集できませんが、今はユーザー毎にcrontabが存在しており、それを自由に登録・削除できます。/etc/crontabはシステムに一つしかないファイルですので、ここにコマンドを登録するときは、当該コマンドを実行するユーザーも設定しないといけませんが、今は個々のユーザーがcrontabを持てるので、、上記コマンドで設定するときはユーザーの設定はいちいち必要ありません。(当然、設定しているユーザー権限で動作しますから)
尚、editorはデフォルトで"nano"が動きますが、はっきり言ってこれは使いにくい!せめてviかemacsでやりたいところです。crontabの説明を調べると、起動時にどれを使うか問い合わせてくれるとか、後で変更できるとありますが、Raspberry Piではできないようです。従って汎用的な方法として.bashrcに以下の設定を追加します。
EDITOR=emacs
export EDITOR
以下のコマンドで自分用のcrontabの登録状況を確認できます。
$ crontab -l
さて肝心の個々のユーザーのcrontabがどこにあるかですが、以下の場所です。
/var/spool/cron/crontabs/(ユーザー名)
というファイル名で保存されています。crond自身は1分程度毎にこのファイルの変更状況を確認しているようで、特にcrondを再起動しなくても変更は反映されます。(そもそもcrontabは分単位でしかプログラム動作を設定できないので、これで十分です)
注意として、実行したいコマンド(特に自分で作成したプログラム)、ファイル等を指定するとき、なるべくフルパスで行った方が安全です。cronで当該コマンドが実行される時の環境(動いている時のカレントパスがどこなのか等)がよくわからないので、できるだけ依存性がないようにしておくべきです。
追記:
なぜcrontabの設定なんか調べていたかというと、Raspberry Piをネットラジオの録音サーバー(特定の番組を予約録音して、結果をmp3ファイルにする)にしたてようと目論んでいるんです。crontabで留守録音の登録をしてみて、うまくいきました。某サイトに録音スクリプトが公開されていたので(注:著作権的にグレーな気がしますので、詳しい場所は伏せておきます。探せばすぐに見つかります。)、それを使いましたが、以下のパッケージが必要で、apt-get installですべてインストールしました。
追記:
なぜcrontabの設定なんか調べていたかというと、Raspberry Piをネットラジオの録音サーバー(特定の番組を予約録音して、結果をmp3ファイルにする)にしたてようと目論んでいるんです。crontabで留守録音の登録をしてみて、うまくいきました。某サイトに録音スクリプトが公開されていたので(注:著作権的にグレーな気がしますので、詳しい場所は伏せておきます。探せばすぐに見つかります。)、それを使いましたが、以下のパッケージが必要で、apt-get installですべてインストールしました。
swftools
rtmpdump
libxml
wget
ffmpeg
lame
ちょっと困ったのが、1時間ほどの録音をした後、mp3変換にffmpegが動いているのですが、これが40分くらいかかってしまいました。サイズも56MBと結構なサイズになりました。とりあえず原理的には動くことがわかったので、ブラウザで録音設定ができるようなフロントエンドや、録音データを簡単にタブレットに転送できるような方法を考えないと。
0 件のコメント:
コメントを投稿