takaojin
Posts: 2
Joined: Fri Aug 16, 2019 8:06 am

自動起動について:複数ターミナルの起動方法を教えて下さい

Fri Aug 16, 2019 8:24 am

当方 初心者です。 RPiに別のボードを載せて、利用しておりますが
このボード上に FPGAが載っており、以下の手順で自動起動させたいのですが
その方法を何方か教えて下さい。
 1.OS起動後 ターミナル(terminal-1とします)から FPGAに
  firmwareを書き込む。
 2.上記 書き込み終了後、別ターミナル(terminal-2とします)にて
  アプリを起動。このアプリは上記 FPGAのfirmwareを利用。
1,2と複数ターミナルが必要で、且つ 1.を終了後に 2.を起動させたいのです。

以上、何方か ご指導よろしくお願いします。

  

matoken
Posts: 31
Joined: Sat Jan 05, 2013 10:30 am
Location: kagoshima japan
Contact: Website Google+ Twitter

Re: 自動起動について:複数ターミナルの起動方法を教えて下さい

Fri Aug 16, 2019 11:41 am

Xが起動していれば複数のターミナルアプリを起動すればいいので恐らくXが起動していない状態だと思います.
その場合仮想コンソールという機能で複数のターミナルを利用できます.
既定値では6枚の仮想ターミナルが起動していて,Alt+F1〜F6で切り替え出来ます.
(Xが起動している場合はCtrl+Alt+F1〜F6)

1枚のターミナルの中で沢山のターミナルを起動して切り替えて使うことの出来るターミナルマルチプレクサというものもあります.
ターミナルマルチプレクサにはtmuxやGNU screenそしてそれらのヘルパーアプリのbyobuがあります.
画面分割や,コピー&ペースト,ロギングなど色々便利な機能があるので興味があったらこれも試してみてください.
Kagoshima Linux User Group : https://kagolug.org/
my site: https://matoken.org
my pi : 1B/1B+/1A/1A+/2B/3B/Zero/Zweo W

matoken
Posts: 31
Joined: Sat Jan 05, 2013 10:30 am
Location: kagoshima japan
Contact: Website Google+ Twitter

Re: 自動起動について:複数ターミナルの起動方法を教えて下さい

Fri Aug 16, 2019 11:57 am

すみません
質問を勘違いしていました.
1,2と複数ターミナルが必要で、且つ 1.を終了後に 2.を起動させたいのです。
1つのターミナルで良ければ以下のようにすることで処理1が正常終了後に処理2を実行します.

Code: Select all

$ 処理1 && 処理2
2つのターミナルが必須であれば,2つ目のターミナルで1つ目のターミナルのプロセスを監視して無くなったら実行という感じでしょうか?

Code: Select all

#!/bin/sh

STATUS=1
while [ $STATUS -ne 0 ]; do
    echo $STATUS
    sleep 1
    # 実際はsleepを処理1のプロセスに差し替える
    STATUS=$(pgrep sleep | wc -l)
done

echo "処理1が終了しました.処理2を実行します."
処理2
Kagoshima Linux User Group : https://kagolug.org/
my site: https://matoken.org
my pi : 1B/1B+/1A/1A+/2B/3B/Zero/Zweo W

takaojin
Posts: 2
Joined: Fri Aug 16, 2019 8:06 am

Re: 自動起動について:複数ターミナルの起動方法を教えて下さい

Fri Aug 16, 2019 11:49 pm

早速のRes.大変ありがとうございます。スクリプトを勉強しながら
tryしてみます。
自動で "term-1で処理後に、term-2のアプリを起動する"が目的です。
同時に複数起動は、"tmux"で出来そうですが、term-2のアプリを全画面で
使いたいので、7" LCDでは画面が分割されてしまうと少々困ります。
 

matoken
Posts: 31
Joined: Sat Jan 05, 2013 10:30 am
Location: kagoshima japan
Contact: Website Google+ Twitter

Re: 自動起動について:複数ターミナルの起動方法を教えて下さい

Sat Aug 17, 2019 1:10 am

自動で "term-1で処理後に、term-2のアプリを起動する"が目的です。
であれば

Code: Select all

$ 処理1 && 処理2
で大丈夫そうです.

&& は正常終了したらその後ろの処理を行います.
|| を使うと異常終了した時の処理も指定できます.
若しくは ; で繋いでもいいかもしれません.(エラーでも正常でも次の処理に移る)

Code: Select all

$ true && echo "処理2"
処理2
$ false || echo "エラー"
エラー
$ true && echo "処理2" || echo "エラー"
処理2
$ false && echo "処理2" || echo "エラー"
エラー
$ slee 3; echo "処理2"
処理2
同時に複数起動は、"tmux"で出来そうですが、term-2のアプリを全画面で
使いたいので、7" LCDでは画面が分割されてしまうと少々困ります。
画面分割を指定しないと通常は全画面表示になります.
tmuxの全画面表示(通常動作)でterm-1で作業した後,Ctrl+b n など(term-2を開いていなければ ctrl+b c で新たに開く)でterm-2に移動したらterm-2が全画面で表示されるのでokだと思います.
Kagoshima Linux User Group : https://kagolug.org/
my site: https://matoken.org
my pi : 1B/1B+/1A/1A+/2B/3B/Zero/Zweo W

Return to “日本語”