web-dev-qa-db-ja.com

起動時に2つのttyからアプリケーションを起動するにはどうすればよいですか?

現在、2つのttyが自動的にログインしていますが、デバイスがロードされたらすぐに、一方からノードスクリプトを起動し、もう一方からCプログラムを起動する必要があります。

デバイスは、Raspbianを実行しているRaspberryPiです。アプライアンスのように機能するように設定されています。これら2つのプログラムは、デバイスの電源がオフになる前に、一度に数時間実行されます。

/etc/rc.localを介してプログラムを正常に起動しましたが、これは実際にttyから起動するのと同じではなく、プロンプトが読み込まれる前に閉じられているようです。

7
thewebguy

/ etc/inittabから好きなように始めることができると思います

例えば(/ etc/inittabの抜粋)

# TERMINALS
c1:12345:respawn:/sbin/agetty 38400 tty1 linux

# Launch top redirecting its output to tty2, without redirecting input
c2:2345:respawn:/usr/bin/top >/dev/tty2 2>&1

# Launch ascii-invaders with redirected input 
# (you will be able to control the game with keyboard after switching to tty3)
c3:2345:respawn:/usr/games/bin/ascii-invaders </dev/tty3 >/dev/tty3 2>&1

本当に必要なものによっては、forminitスクリプトを起動する方が実際に優れている場合があります。ただし、おそらく何らかの方法でデーモン化する必要があります(たとえば、バックグラウンドで実行することによって)。そうしないと、initシステムはプログラムが終了するまで待機します。一方、プログラムを操作する必要がある場合は、制御端末で実行する方が簡単です。 initスクリプトからtmuxまたはscreenで実行することにより、両方のアプローチを組み合わせることができます。

0
peterph