###前提・実現したいこと
raspberry pi 3 を利用して下記のようなシステムを構築しようとしております。
1.SDカード挿入時に/etc/udev/rules.dを利用して、2.のスクリプトが実行される
2.スクリプトの中でSDカードの中身を特定のディレクトリにコピー
3.ファイルリネームプログラム(JAVA:自作)呼び出し
この時、/etc/udev/rules.dによって呼び出されたスクリプトが途中で終了されてしまい、
コピー中や、リネーム中に処理が止まってしまいます。
###該当のソースコード
/etc/udev/rules.dに格納しているファイルは50-CardInMultiReader.rulesという名前で、
内容は下記のとおりです。
ACTION=="add",\ DRIVERS=="sd",\ ATTRS{model}=="Flash Reader "\ RUN:="/mnt/data/Systems/Scripts/sdcard_sync.sh"
/mnt/data/Systems/Scripts/sdcard_sync.shの中身は下記のとおりです
bash
1#!/bin/bash 2 3TO1_MAIL=test@example.com 4MSG_BACKUP_S="バックアップを開始しました" 5MSG_BACKUP_N="バックアップ可能なメディアではありませんでした" 6MSG_BACKUP_E="バックアップを完了しました" 7LOGF_PATH=/mnt/data/Share/Temp/targets/sdCopy.log 8 9if [[ "$DEVNAME" =~ sd[c-z][0-9] ]]; then 10 echo $MSG_BACKUP_S | mail -s "data backup" $TO1_MAIL 11else 12 exit 1 13fi 14 15echo pid=$$ >> $LOGF_PATH 16 17hoge=0 18while : 19do 20 sleep 1; echo `date` >> $LOGF_PATH 21 if [ $hoge -gt 3000 ] ; then 22 echo "over 3000" >> $LOGF_PATH 23 break 24 fi 25done 26#本来はここでファイルコピーとリネームスクリプトの呼び出し
###試したこと
上記の状態で、USBのカードリーダーのSDカードの抜き差しをした所、
sdCopy.logに下記の通りの出力があり、その後ログ出力が止まりました。
pid=12781 Fri Jan 13 00:06:10 JST 2017 Fri Jan 13 00:06:11 JST 2017 Fri Jan 13 00:06:12 JST 2017 Fri Jan 13 00:06:13 JST 2017 Fri Jan 13 00:06:14 JST 2017 Fri Jan 13 00:06:15 JST 2017 Fri Jan 13 00:06:16 JST 2017 Fri Jan 13 00:06:17 JST 2017 Fri Jan 13 00:06:18 JST 2017 Fri Jan 13 00:06:19 JST 2017 Fri Jan 13 00:06:20 JST 2017 Fri Jan 13 00:06:21 JST 2017 Fri Jan 13 00:06:22 JST 2017 Fri Jan 13 00:06:23 JST 2017 Fri Jan 13 00:06:24 JST 2017 Fri Jan 13 00:06:25 JST 2017 Fri Jan 13 00:06:26 JST 2017 Fri Jan 13 00:06:27 JST 2017 Fri Jan 13 00:06:28 JST 2017 Fri Jan 13 00:06:29 JST 2017 Fri Jan 13 00:06:30 JST 2017 Fri Jan 13 00:06:31 JST 2017 Fri Jan 13 00:06:32 JST 2017 Fri Jan 13 00:06:33 JST 2017 Fri Jan 13 00:06:34 JST 2017 Fri Jan 13 00:06:35 JST 2017 #このあとはログ出力がされなくなってしまう
この時のプロセスを監視してみた所、下記のような表記でした
Every 0.5s: ps auxw | grep sdcard_sync.sh Fri Jan 13 00:06:19 2017 pi 1367 1.6 0.2 3744 2304 pts/0 S+ 1月12 0:25 watch -n 0.5 -d ps auxw | grep sdcard_sync.sh root 12781 0.1 0.2 3496 2636 ? S 00:06 0:00 /bin/bash /mnt/data/Systems/Scripts/sdcard_sync.sh pi 12923 0.0 0.0 3740 276 pts/0 S+ 00:06 0:00 watch -n 0.5 -d ps auxw | grep sdcard_sync.sh pi 12924 0.0 0.0 1912 408 pts/0 S+ 00:06 0:00 sh -c ps auxw | grep sdcard_sync.sh pi 12926 0.0 0.2 3780 2004 pts/0 S+ 00:06 0:00 grep sdcard_sync.sh
###補足情報(言語/FW/ツール等のバージョンなど)
作業環境は以下のとおりです
Distributor ID: Raspbian
Description: Raspbian GNU/Linux 8.0 (jessie)
Release: 8.0
Codename: jessie
何をどう調べていくのが適当なのかがわからない状態です。
途中で止まってしまう原因の探し方、もしくは原因などご教示いただけましたら幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。