アフィリエイト広告を利用しています
ファン
検索
<< 2016年12月 >>
        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 30 31
最新記事
写真ギャラリー
最新コメント
タグクラウド
カテゴリーアーカイブ
月別アーカイブ
プロフィール
DDダッシュさんの画像
DDダッシュ
ブログ
プロフィール

広告

この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
posted by fanblog

2016年12月11日

Raspberry Pi(ラズベリー パイ)でアプリの自動起動

ふつうRaspberry PiでXWindowが立ち上がったときにアプリケーションを自動実行する場合は
シェルスクリプトで動くんだけど USBシリアルでCOM通信するようなアプリを作っていると
たまに自動で起動されなかったり、もっとひどいとログインできなくなって、自動実行したアプリだけが
延々起動し続けるという恐ろしい現象が!!!

(こうなったら他のOS(Linux系)でメモリ読み込んであげてシェルスクリプトを削除するしかなくなってしまう・・)







今回の最終目的としては

/home/pi/tmp/test.jar
のアプリを自動起動すること

となります。

かなり強引で回りくどい方法なんですが今作っているアプリ(USBシリアルを3本使うちょっと面倒なヤツ)
はこの方法で無いと自動起動しなかったのでメモです。

まず、コマンドプロンプトを実行するためのjavaのプログラムを用意


import java.io.IOException;
public class Main {
public static void main(String[] args) {
Runtime runtime = Runtime.getRuntime();
try {
runtime.exec("sudo java -jar /home/pi/tmp/test.jar");
} catch (IOException e) {
e.printStackTrace();
}
}
}

これでjarファイルを作成(今回はautorun.jarとする。

autorun.shファイルを
/home/pi/tmpに作成

shファイルの内容は

#!/bin/bash
sleep 1s
sudo java -jar /home/pi/tmp/autorun.jar
exit

こんな感じで

LXTerminalで
chmod +x autorun.sh
して実行可能権限を与えます。


ファイルマネージャー上でダブルクリックして実行し
目的のjarのアプリが立ち上がるかどうかを確認して
OKであれば自動実行用の登録をおこないます。
(普通はシェルスクrプトに直接記述して登録すれば済むんですけどね)

/home/pi/.config/lxsession/LXDE-pi/autostart
の最後の行に
@/home/pi/tmp/autorun.sh

を記述してあげればPi起動後に目的のアプリが自動実行されるようになる

あぁ回りくどい!




×

この広告は30日以上新しい記事の更新がないブログに表示されております。