GUIなしで複数の「ターミナル」を開きます(startx)


12

タイトルが自明であるかどうかはわかりませんが、デスクトップを起動せずに複数の(現在は2つで十分です)端末を開きたいと思いました。

PHPスクリプトを(フルタイムで)実行し、RaspiをRaspbianで起動したときにRaspiターミナルをそのまま使用できるようにします。


sshまたはpiに直接接続しますか?
スティーブアーウィン

回答:


8

Alt + F1-F12を使用するだけで、GUIを起動せずに12の異なるコンソールタブを使用できます。


これは実際に私が現在使用しているオプションです:)
pasadinhas 14

1
これはRaspbianでは機能せず、他のttyにはログインしません。
AndreKR

9

コンソール(キーボードと画面が接続されている)を使用している場合は、Linux 仮想コンソールシステムを使用して、(ctrl-)alt-F1からF12などを使用して複数の端末を切り替えることができます。

設定された端末の数とgettyプロセス(ログインとパスワードを要求する)を持っている端末の数は、設定によって異なります


2
+1マシンに直接接続されている場合、これは別のログインを取得するための「標準」方法であり、screen / tmuxをインストールする必要がないためです
。– Kiirani

6

screen(私の意見では)よりも優れていtmuxます。からインストールできsudo apt-get install tmuxます。また、でマンページも確認してくださいman tmux

tmuxコンソールのいずれかを入力して開始できます(XTLの回答を参照)。

最も重要なコマンドを次に示します(C-b dつまり、CtrlキーとBキーを同時に押してから、Dキーを押します)。

  • C-b d セッションを切り離す
  • tmux attach 実行中のセッションを再接続するシェル上
  • C-b " 現在のフレームを水平方向に分割します(新しいシェルが開始されます)
  • C-b % 現在のフレームを垂直に分割します(新しいシェルが開始されます)
  • C-b arrow (up, down, left, right) 現在のフレームのウィンドウ間を移動する
  • C-b c 新しいフレーム(新しいシェルが開始されます)
  • C-b n 次のフレーム
  • C-b l 最後のフレーム
  • C-b bC-b実行中のアプリケーションに送信する

ここでもtmuxを強く支持しています。ステータスラインの構成ははるかに単純で、再描画の処理が改善されています。
コーディ

1
セッションを複数のVTにアタッチすることに関して、tmuxにはscreenと同じ動作がないことに注意してください( "screen -x")
Kiirani

3

これは画面でも行うことができます。画面を使用すると、画面セッションから切り離し、ログアウト、ログインし、何も失うことなく画面セッションに再接続することもできます。プログラムは引き続き実行され、切断した端末にはすべての出力が表示され続けます。

スクリーンチュートリアルへのリンク:

http://www.rackaid.com/resources/linux-screen-tutorial-and-how-to/

http://magazine.redhat.com/2007/09/27/a-guide-to-gnu-screen/

便利な.screenrcのヒントが記載されたスレッドへのリンク:

https://bbs.archlinux.org/viewtopic.php?id=55618

Raspberry Pi固有のチュートリアル:

http://raspi.tv/2012/using-screen-with-raspberry-pi-to-avoid-leaving-ssh-sessions-open


3
  1. 実行するphpスクリプトがユーザーと対話しない場合や入力が必要な場合は、

    &スクリプトをバックグラウンドに送信するコマンドを使用できます

    以下に例を示します。

    pi@raspberrypi ~ $php code1 &
    

    これにより、スクリプトが実行され続けるバックグラウンドに送信されます。

  2. 端末にsshする場合、同じユーザーで2回sshを実行し、2つの端末を使用できます。

  3. sshセッションから複数の端末を開きたい場合、

    画面を見るか、画面をbyobu囲むラッパーであるインストールを改善する必要があります。

    byobuは、ctrl-aのキーの組み合わせではなく、シンプルなファンクションキーを使用して新しい画面を簡単に開くことができるラッパーです。また、名前を付けることができるすべての開いている仮想端末を含むステータス行も表示します。

    もう1つの優れた機能は、ssh接続が切断されている間、すべての画面を表示できるという事実です。sshを介して再度接続し、byobuを呼び出すだけで、すべてが以前のようになります。

それが役に立てば幸い。


2

完全を期すために、別のオプションはbyobuを使用することですGNU screenの上にある便利なレイヤーです。それは素晴らしいデフォルトを提供し、私の感覚では使いやすいです。私はRapsberry Piで個人的に使用していますが、うまく機能します。それをインストールするには、単に入力します:

$ sudo apt-get install byobu

インストールしたら、次の方法で構成します。

$ byobu-config

ログイン時に自動的起動し、ステータス通知アプレットを切り替えることができます(稼働時間、読み込み、日付...

ここに画像の説明を入力してください

補足として、この種の仮想コンソールは、異なるマシン上の異なるユーザー間で同じコンソール入出力を共有するのにも役立ちます(テキストモードの画面共有と呼ぶことができます)。


先日by坊を試してみましたが、幸せではありませんでした。ファンクションキーによる制御は非常に不安定でした。OS Xでは動作せず、Debianの下でも問題がありました。tmuxとそのコマンドに固執します。ファンクションキーは、mc(真夜中の司令官)と衝突します。
アルネ

mcとのファンクションキーの競合については、by風で変更できます(2つの異なるモードからを簡単に選択できますbyobu-config)。
ローラングレゴワール

2

元の要件はPHPスクリプトをバックグラウンドで起動することであったため、コマンドを使用できますnohup。例:

$ nohup php myscript.php &

開始されると、コマンドライン引数として指定されたコマンドはバックグラウンドnohup実行され、その入出力はそれを開始した端末からリンク解除され、SIGHUPシグナル(nohup名前)がバックグラウンドプロセスに送信されるのを防ぎます開始コンソールを終了します(通常、プログラムが終了するシグナル)。出力はファイルにリダイレクトされます(デフォルトnohup.out)。

詳細については:man nohup

より良い、より完全な答えを得るには、プログラムを完全に「デーモン化」することをお勧めします。おそらく、PHPスクリプトを使用してそれを行う方法を説明するリソースをWebで見つけることができます。


一部のシェル(bash、zsh?)には、disown選択したバックグラウンドプロセスのハングアップを防ぐコマンドもあります。
XTL
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.