今日はCoke自販機の飲みたいものが売り切れだったので、モスにした。
最近、コーヒー飲んでも痒みが出ない。
そういや、今日は、西川貴教のかけっことびっこが流されまくってたな。
I know who Iam.
結局の所、ロックファイルがあれば起動しない処理だったけど、なぜか起動するという事はファイルが無くなっているという事。
プロセスを終了させて、ファイルを消している処理があるので、そこでプロセスが完全に終了するまで待つ事にした。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
motion_start(){ if [ ! -e ${MOTION_PID} ]; then motion -n & echo $! >${MOTION_PID} # ファイルが作成されるまで待つ while [ ! -e ${MOTION_PID} ]; do sleep 0.1 done fi if [ ! -e ${GPS_BASE} ]; then GPS_NOW=`${GPS_LATLON}` if [ "${GPS_NOW}" != "" ]; then echo "${GPS_NOW}" > ${GPS_BASE} fi fi } motion_stop(){ if [ -e ${MOTION_PID} ]; then PID=`cat ${MOTION_PID}` kill -TERM ${PID} # プロセスが完全に終了するまで待つ while [ "`ps h p ${PID}`" != "" ]; do sleep 0.1 done rm -f ${MOTION_PID} || true rm -f ${GPS_BASE} || true fi } |
元は、kill -TERM `cat ${MOTION_PID}`て処理だったけど、それよりも先にファイル削除になって、PIDがkill に渡らないから生存しつづけて、多重起動になっとったんかなあ。
linux ってファイルを処理に渡したら、削除しても内容は消えずに渡ると思ってたが、あれは通常のファイルシステムの話で、RAM DISK上のファイルは違うのかねえ。
とりあえず、プロセス終了を待ってからファイル削除で多重起動しなくなったから、ま、いっか。
【皇紀2682年11月17日 追記】
今日、会社の帰りに車に乗ったら二重起動が発生。
もう、どこが悪いのか分かんね。
【/皇紀2682年11月17日 追記】
車載のRaspberry Pi zero 2 W(以下rx7pi) で、bluetoothヘッドフォン接続時に、motion の動体検知録画を止め、切断時に動体検知録画ONになるようにしている。
だが、確認してみると、朝、車に乗る前に、bluetoothヘッドフォン接続したのに、通勤時の動画が一杯記録されてた。
VPN経由でrx7piへログインしてみたところ、
1 2 3 4 |
noizumi@rx7pi:~ $ ps auxw|grep motion|grep -v grep noizumi 5374 1.4 9.1 206036 34324 ? SLl 11月14 11:56 motion -n noizumi 20643 0.8 7.5 171496 28364 ? SLl 09:29 0:16 motion -n noizumi 23656 0.8 7.5 171496 28112 ? SLl 09:34 0:14 motion -n |
三重起動しとる……。
1 2 |
noizumi@rx7pi:~ $ cat /dev/shm/motion.pid 23656 |
記録されとるのは、一番最後のプロセスIDなので、多重起動防止を突破しとるようだ。
あと、motion が二重起動してる事があって、何でだろうと考えたが、motion -n &でバックグラウンド起動してるので、process IDを出力する前に、ループで二週目の呼び出しで二重起動になってるんだろう。
1234567891011121314 motion_start(){if [ ! -e ${MOTION_PID} ]; thentouch ${MOTION_PID}motion -n &echo $! >${MOTION_PID}fiif [ ! -e ${GPS_BASE} ]; thenGPS_NOW=`gpslatlon.sh`if [ "${GPS_NOW}" != "" ]; thenecho "${GPS_NOW}" > ${GPS_BASE}fifi}という事で、process IDが出力する前に、touch でファイルを作成しておき、二重呼び出しにならないようにした。
情報源: raspberry pi – Yuji Noizumi’s blog
と、対策はしたのだが、なぜに多重起動する!?
9:29 と 9:34 に起動してるが、ドアの開閉でルームランプのLEDライトが点灯した時にLEDのノイズで接続が切れてるのかもしれんな。
しかし、それでも論理的に多重起動するのはあり得んのだが、状況を整理しよう。
これはやっぱりLEDライト点灯による bluetooth 接続断がくさいが、もしかすると、motion の起動完了にすごく時間が掛かってて、sleep 1 のwaitでは足らないのかもしれない。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
motion_start(){ if [ ! -e ${MOTION_PID} ]; then motion -n & echo $! >${MOTION_PID} while [ ! -e ${MOTION_PID} ]; do sleep 0.1 done fi if [ ! -e ${GPS_BASE} ]; then GPS_NOW=`gpslatlon.sh` if [ "${GPS_NOW}" != "" ]; then echo "${GPS_NOW}" > ${GPS_BASE} fi fi } |
という事で、 恐らく、touch したファイルは、リダイレクト指定したら削除されて、ファイルが存在しないから多重呼び出し可能になってしまうのだろう。
そこで、リダイレクトのファイルが作成されるまで待つ処理を入れてみて、様子を見るとしよう。
事務員が、支払い期限の過ぎた請求書を消そうとしてたので、ちょっと気になって色々調べてみた。
すると、請求書発行の金曜毎に、エクセルで入金リストを記載する事になってるのに、9/7から記載してない。
入金リストは、請求書を発行して、入金があったかどうかを記載するものだが、支払いがあれば「済」で、無い顧客は一覧で「未」となって、督促しないといけない項目となる。
請求書システムで、事務員が削除しようとしていた請求書を調べると、契約解除になっていた。
客が全く利用してない場合は、契約解除の申し出で、契約解除にはできるのだが、その客は請求に対して、一切返事をしないので、契約解除になってるのがおかしい。
経理処理的には、請求書を出して支払いが無い顧客に何回か督促をする事になっているが、事務員は、1回督促して、反応が無い場合に勝手に契約解除にしているようだ。
入金リストに未収の分を記載せず、請求書システムの請求書を消してしまえば、未収の請求書をなかった事にできるから、事務員は消そうとしてた訳だな。
で、更に調べてみると、事務員は、料金の払い込みの無かった客とのメールでのやり取りを削除し、運営サイトの客のデータや契約のデータまで消して、請求書システムの請求書も消してやがった。
いや、これ、もうアカンレベルやろ?
ちょっとした嫌がらせで、勝手に消された請求書を復元しておいたのだが、請求書システムではパスワード入れないと削除できなくしたので、放置するかと思ってたら、わざわざ中身の請求項目を削除して、請求額 0円にしやがったwww
いや、0円の請求書が残ってるって、あからさまにおかしいだろ(笑)
これで請求する金額自体がわからなくなったので、督促しなくて済むとでも思ってるのかな?
でも、事務員が消したと思ってる運営サイトの客のデータも契約も、データ自体は残ってて復元可能だから、請求書もすぐ復元できちゃうんだよなあ。
しかし、0円の請求書を残しておく方が面白いので、復元しない 🙂
まあ、ここまで来たら、事務員は保身と自己正当化の為に、引き続き請求書メールをわざと2回送って、「2回送られる。不具合だ」と言い掛かりを付け、わしのせいにするだろうから、2回目以降送信する場合は、パスワードを要求するようにした。
そして、請求書を編集して、送信ステータスを「未送信」に変更したら、何回でも送れるので、ステータスを「送信済」から変更しようとしたらパスワードを要求するようにした
情報源: Yuji Noizumi’s blog – I know who Iam.
これ以外に、請求書のデータを削除しようとしたらパスワードを要求し、削除しようとした事を記録する細工も仕掛けておいたのだが、今日、そのトラップに引っ掛かっとった。(笑)
どうやら、請求書を削除して、システムに不具合があるって筋書きを実行しようとしたようですな。うん、やると思ってたわwww
だいたい、名前出してブログ書いてんだから、相手に見られている可能性も考えずに書いてる訳がねーだろ 🙂
社長のみならず、社員全員に、事務員が引き続き、システムの不具合に見せ掛ける為の業務妨害を続ける可能性があるって言ってあるんだよな。
そして、今回の件で、わしの言った通りになった訳なので、もう完全に事務員の信頼度ゼロwww
何考えてんのか知らんが、客にメール2回送りつけるとか、請求書削除するとか、普通に犯罪だしな。もう全員知ってるし、懲戒処分食らわん内にやめといた方がいいぞw
【追記:皇紀2682年10月22日】
ログを精査したら、支払い期限切れの請求書を削除しようとしてたみたい。
パスワード解除する為に、システム設定のあちこちを見て回ったようだが、ブラウザ扱えるだけの素人に解除できる仕掛けなんか、わざわざ用意するわけがないだろwww
督促すんのがそんなに嫌か?w
まあ、経理つーたら、請求書出して、支払わん奴に督促せにゃならんけど、二週間に1回、内容証明で督促状出して、2回出してもダメなら終わりの簡単なお仕事やんけ。
そっから訴訟するかは会社の判断になるが、経理上は、損金参入するのに、「頑張って督促したけどダメだったよ」って事を示さないといけないので、内容証明2回出したけどダメだったって結果を残すだけで、何も難しい事はない。
まあ、会社によって方針が違うのかもしれんが、社長の方針で、電話かけろって言われてるなら、それやるしかないよねー 🙂
【/追記:皇紀2682年10月22日】
社内の請求書発行(メールで送付)をわしがやってたのを、事務員に引き継げとの社長のお達しが出た。
事務員との関係だが、以前、わしが老眼故に抹茶入りお茶パックの抹茶をこぼしていたのが分からなかった事があって、それに事務員は大層お怒りで、「そんなの違うんでー」と言って「汚したら各自清掃する事」なんて貼り紙までした始末。
何が「そんなの違うんでー」なのか、よく分からんが、恐らく、わしがわざと汚して、「事務員が清掃するのが当たり前」と、事務員に嫌がらせをしていると思い込んでいるのだろう。
それ以来、事務員はわしを毛嫌いしているのだが、先々週くらいに事務員の都合で、請求書を15時までに用意してくれと言ったのを17時と見間違えて用意しなかったのも嫌がらせと思ったようだ。
それを事務員が社長にチクったら、請求書発行業務を事務員がやる事になったといういきさつ。
そこで、先週金曜に、対面で引き継ぐ予定が、事務員が黙ってすっぽかしたので、手順書を書いて「分からない所があったら聞いてくれ」とSkypeに投げておいた。
で、金曜が請求書作成日で、事務員は今まで何も聞いて来なかったので、うまくいってると思いきや、「請求書メールが2回送られている」とか言ってきた。
このシステムは2年半使っているが、今までそんな事にはなった事がないので、事務員が一体、何をやらかしたのか、再現手順を聞いてもロクに答えられない。
そして、次の画像の様な事を言ってきた。
社長に聞いた所では、事務員が進んで請求書発行をやると言っていたので、引き継ぐ事にしたという事だが、自ら進んでやると言った割には、引き継ぎ後初っ端から「元に戻しますか?」なんて言うのは矛盾している。
おそらく、わしが15時までに請求書の用意しなかった件で、嫌がらせと思い込み、わしの非を非難して、社長にチクって辞めさせたいと思ったが、失敗して仕事を押し付けられてしまったというのが真相だろう。
事務員が不具合検証に非協力的なので、請求書システムのWebのアクセスログを調べてみた。このログを見ると、どのページを開いて何をやってるのかが丸分かりになる。
結果……
請求書の詳細ページを開いて、メール送信ボタンを押し、「メールを送信しますか?」のダイアログでOK押して送信。
その5〜10秒後に再びメール送信ボタンを押し、「この請求書は既に送信済ですが、もう一度送信しますか?」のダイアログが出てるにも関わらずOKを押して送信。
これを請求書分4回繰り返し、間違いなく、わざと2回送信してるな(笑)
で、ログ解析の結果、わざとやってる事を指摘したら、慌てる慌てる(笑)
そして、「送信済ですが、もう一度送信しますか?」って出てただろ?と指摘しても、「そんなのは出てない」と嘘をつく。
プログラム構造上、その確認で「OK」を押さないと請求書メールの再送信はできない事になっているので、完全な嘘。
そりゃわざとやってんだから、「出てました」なんて言えんよなあ(笑)
そして、これを不具合と言い掛かりをつけて、問題が発生してるから、請求書発行は、元のわしへ戻した方がいいと主張しようとしていたようだ。
なんか、わしを嫌ってるのは知っていたが、会社に損害を与えてまでわしを陥れようとするとは思わなんだ。懲戒免職になる可能性もあるのにようやるわ。
しかし、こんなしょうもない小細工やって、何でバレないと思えるのか不思議でしょうがない。
そして、最終的に事務員は、わしの書いた手順書が分かりにくいからだと責任転嫁して来たが、まあ、逃げる先はそこしか無いわな(笑)
excel使って書けとか逆ギレしとったけど、社長に言ってね(笑)
稼ぎの無い間接部門の為に、見積もり時間単価○万円の直接部門のわしがexcel使って色使って見栄えの良い手順書を作るなんて、なんて贅沢なんでしょ。 🙂
残念ながら、社長が天然ボケなので、この事務員は解雇になっていない。
まあ、ここまで来たら、事務員は保身と自己正当化の為に、引き続き請求書メールをわざと2回送って、「2回送られる。不具合だ」と言い掛かりを付け、わしのせいにするだろうから、2回目以降送信する場合は、パスワードを要求するようにした。
そして、請求書を編集して、送信ステータスを「未送信」に変更したら、何回でも送れるので、ステータスを「送信済」から変更しようとしたらパスワードを要求するようにした。
何で、社内の悪意ある人物の対策を組み込まねばならんのか。意味が分からないよ。
RX-7の車載警報装置は、docomo の平型イヤホンマイクコネクタが出ていて、それを携帯電話に繋いで、発報時に電話を掛けてくれるようになっている。
しかし、docomoの3Gは皇紀2686年3末に終了しちゃうから使えなくなるので、平型端子の信号をRaspberry PiのGPIOに拾わせて、donedone SIM(維持費無料)でメール送れないかなと考えている。
イヤホンマイク平型端子のパーツ取り用としてラスタバナナの変換アダプタをRB8VC02をこうにう
早速バラしてみたが……
上のソケットだけど、みっちり10ピン並んでて、とてもピンに半田付けして配線できそうにない。
平型端子のピンアサインがこうなってるけど、ラスタバナナの変換コネクタでは、8番が繋がってないみたいなんだよなあ。
SH-03Cに繋いでテストしてみたけど、ちゃんとイヤホンマイクのスイッチは反応するし、7番や9番のピンが配線されてて、ピンアサインの表が間違ってんじゃねーの?
【追記】
イヤホンマイクのプラグを分解して調べてみたが、どうやら、ラスタバナナの変換コネクタの基盤に刻印されてるピン番号が逆だな。
ピンアサイン表が、コネクタじゃなくてプラグのピン配列を表しているとすると、左から3番めが8番なので、基盤に配線がある。
ただ、1番のGNDが配線されてなくて、10番の予約に配線されてて、それがGNDくさい配線になってるのが気になるな。
【/追記】
これは、警報装置の平型コネクタ分解して配線確認して、線を取り出して、Raspberry PiのGPIOに繋ぐしかねーな。
情報源: 遠隔操作付盗難防止GPSユニット MV790GJ GPS – 株式会社ZEST 公式オンラインストア
あと、今の警報装置の発報時のメールは諦めて、こいつを使うって手もあるけど、docomo系SIM限定で、au系のdonedoneは無理っぽいから、通信維持費が掛かるのが難点だな。