新規記事の投稿を行うことで、非表示にすることが可能です。
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起動後に目的のアプリが自動実行されるようになる
あぁ回りくどい!
シェルスクリプトで動くんだけど 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起動後に目的のアプリが自動実行されるようになる
あぁ回りくどい!