2006-07-05 [長年日記]

_ [FreeBSD][Programming] デーモン管理

/var/run/ に "アプリケーション名.pid" というファイル名を作成する。そのファイルにはデーモンのプロセスIDを記述。

デーモンを終了させるときは

kill `cat /var/run/"アプリケーション名.pid"`

を行い、ファイルも削除する。ファイルが既に存在する場合にはデーモンは立ち上がらない。

あー!もしかしてこれっていちばん原始的なプロセス管理手法?

UNIXが出来た当初からデーモンがあることを考えると妙に納得する予測だな。ま、そこからいろいろな手法が生まれてきたわけだー。なるほどー。(一人納得)

_ 知能ロボットコンテスト考察

socket, select/poll, ioctl, fork signalなどシステムコールを覚えてくるにつれて

「実はロボットのOSって Unix(Linux) にした方が効率良いロボットを造れるんじゃない?」

とか

「ioctl うてりゃ、Pythonやrubyなどのスクリプト言語でロボット動かせない?(デバイスドライバはCで書く必要があるけど、いやよくわからない)」

とか色々考えるわけです。

余裕が出てきたんで、少しロボットのアルゴリズムを考える。

まず、ロボットを2台準備。一台はフィールド全体を見渡すためのオペレーションロボット。もう一台はボールを運ぶためのロボット。オペレーションロボットはボールの位置、ボール運搬ロボットの位置情報を随時運搬ロボットに送信。運搬ロボットはその命令を受け取ってボールを落とす。二人の通信は Bluetooth で行う。Unix なら socket write read でいけんだろー。あはは。

と、色々考えはある。だけど、ハードを作る知識がなくて前進できない状態。それに、Uinux 入れるとなるとそれなりに高い CPU を使わなければいけないし…。うーん、誰か造りません?

本日のツッコミ(全3件) [ツッコミを入れる]
_ おだわら (2006-07-06 01:05)

(ロボ)…計画中です。つーか、うちのボードで可能です。買ってください(笑)<br><br>ちょっと書いておくと、ioctl打てなくてもスクリプトでロボは動いて、Linuxだと適当なキャラクタ型デバイスを作っておけば、あとはread、write(もちろんioctlでもよい)で動きます。<br>問題なのは周期実行で、割り込みをスクリプトではどうやったら拾えるのか、という点ですね。Cでプログラムを書いておいて、その中から特定のスクリプトを呼び出せばいいんでしょうけど、それだとスクリプトの意味が…(なんて書いてたら、スクリプトから割り込みを拾う方法がありそうな気がしてきた)

_ Narupon (2006-07-06 21:30)

高いよ、凄く高いよ(笑<br><br>python といい、 perl といい ioctl が入っているから、ついでに割り込み機能も付いてないものかなぁ。

_ おだわら (2006-07-06 23:45)

高くない、高くない(笑)これでも相当安い方なんですよ。<br>perlで割り込み処理って、出来たら怖いな。10msecごとの割り込みだと、10msec以内に終わる気がしない…。

[]

«前の日記(2006-06-30) 最新 次の日記(2006-08-01)»