iPhone 3GS で自宅サーバのメールをプッシュで受けるために使わせてもらっている IMAProwl。IMAProwl 1.0.0 がリリースされたのを機に、これまで手動で起動していたものを起動時に実行するようにしてみました。当初導入した時点と比べると、daemon mode が追加されたり、既読問題が対処されたり、ずいぶん使い勝手もよくなっています。
配布物を適当なところに展開し、まずは、このサーバで使っている FreeBSD の環境に合わせるために、スクリプトにちょっと手を加えておきます。手を加えるといっても、imaprowl.rb の先頭行を書き換えるだけですけど。
#!/usr/local/bin/ruby19
続いて、/usr/local/etc/rc.d/ に以下の内容で imaprowl というスクリプトを用意。
#!/bin/sh
#
# PROVIDE: imaprowl
# REQUIRE: courier-imap-imapd-ssl
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable imaprowl:
# imaprowl_enable (bool): Set it to "YES" to enable imaprowl.
# Default is "NO".
. /etc/rc.subr
name="imaprowl"
rcvar=${name}_enable
load_rc_config $name
: ${imaprowl_enable="NO"}
start_cmd=${name}_start
imaprowl_start() {
/usr/local/etc/IMAProwl/imaprowl.rb -c /usr/local/etc/IMAProwl/imaprowl.conf -q
}
run_rc_command "$1"
rcNG の書き方をよくわかっていませんので、動けばいいやって感じです。
後は、/etc/rc.conf に
imaprowl_enable="YES"
と追記すれば大丈夫かと思ったのですが、FreeBSD 起動時の実行順序の都合でエラーを吐いてしまいました。# REQUIRE: courier-imap-imapd-ssl で、IMAP 起動後に実行してくれるのかと思っていたのですが、なぜだか上手くいきません。まぁ、私がよくわかっていないだけなのでしょうけど。
仕方ないので、/usr/local/etc/rc.d/courier-imap-imapd-ssl に以下を追記。
# BEFORE: imaprowl
これで無事、courier-imap-imapd-ssl 起動後に imaprowl が実行され、思惑通りになりました。
関連記事
コメント














