Heim >Computer-Tutorials >Computerwissen >So wechseln Sie unter einem Linux-System reibungslos zwischen verschiedenen Anwendungen

So wechseln Sie unter einem Linux-System reibungslos zwischen verschiedenen Anwendungen

王林
王林nach vorne
2024-02-19 15:00:09685Durchsuche

Erreichen Sie den Wechsel zwischen verschiedenen Anwendungen durch das Vor- und Zurückschalten von Prozessen.

Hintergrund: Nachdem Linux ein Programm gestartet hat, wechselt es zur Ausführung in den Hintergrund und möchte unter Linux weiterarbeiten.

Unter Linux können Sie die folgenden Methoden verwenden, um ein Programm im Hintergrund starten und beenden zu lassen, den Prozess aber dennoch am Laufen zu halten:

So wechseln Sie unter einem Linux-System reibungslos zwischen verschiedenen Anwendungen

1. Linux startet ein Programm, das im Hintergrund ausgeführt wird

1. Verwenden Sie nohup&:

$ nohup your_program &

Verwenden Sie das nohup命令可以使程序忽略挂断信号(SIGHUP),这样即使你退出了终端,程序也会继续运行。&-Symbol, um das Programm im Hintergrund laufen zu lassen.

2. Verwenden Sie ctrl+Z:

Wenn Sie das Programm im Vordergrund gestartet haben, können Sie es mit dem Befehl ctrl+z in den Hintergrund verschieben:

$ ./your_program# 运行在前台
$ 按 Ctrl + Z# 将程序暂停,并将其移到后台 
$ bg#在后台继续运行程序
$ disown -h# 使程序在你退出终端时仍然运行

3. Verwenden Sie screen:

screen ist ein Terminal-Multiplexer, der auf UNIX- und Linux-Systemen läuft und es Benutzern ermöglicht, mehrere virtuelle Terminals auf einem physischen Terminal auf demselben Computer zu starten.

Durch das Erstellen einer neuen Sitzung können Sie das Programm darin ausführen und die Sitzung bleibt auch dann aktiv, wenn Sie das Terminal verlassen. Anschließend können Sie sich erneut mit der Sitzung verbinden, um die Ausführung des Programms anzuzeigen und zu steuern.

Bildschirmfunktionen

Bildschirm hat drei Funktionen:

  • 会话恢复: Solange der Screen selbst nicht beendet wird, können darin laufende Sitzungen fortgesetzt werden. Dies ist besonders nützlich für Benutzer, die sich remote anmelden – selbst wenn die Netzwerkverbindung unterbrochen wird, verliert der Benutzer nicht die Kontrolle über die von ihm geöffnete Befehlszeilensitzung. Melden Sie sich einfach erneut beim Host an und führen Sie screen -r aus, um die Sitzung fortzusetzen. Wenn Sie den Bildschirm vorübergehend verlassen, können Sie auch den Befehl „detach“ ausführen, um den Bildschirm anzuhalten (in den Hintergrund zu wechseln) und gleichzeitig sicherzustellen, dass die darin enthaltenen Programme normal ausgeführt werden. Dies ist hinsichtlich der grafischen Oberfläche sehr ähnlich zu VNC.
  • 多窗口: In der Screen-Umgebung laufen alle Sitzungen unabhängig voneinander und verfügen über eigene Nummern, Eingabe-, Ausgabe- und Fenster-Caches. Benutzer können über Tastenkombinationen zwischen verschiedenen Fenstern wechseln und die Eingabe und Ausgabe jedes Fensters frei umleiten.
  • 会话共享: Screen ermöglicht es einem oder mehreren Benutzern, sich mehrmals von verschiedenen Terminals aus bei einer Sitzung anzumelden und alle Funktionen der Sitzung zu teilen (z. B. die Anzeige der exakt gleichen Ausgabe). Es bietet außerdem einen Mechanismus für Fensterzugriffsberechtigungen und kann Fenster mit einem Passwort schützen.

So verwenden Siescreen: Installieren Sie den Sudo apt-Installationsbildschirm

3.1 Sitzung erstellen

$ screen -S session_name your_program

3.2 So stellen Sie die Verbindung zu dieser Sitzung wieder her:

$ screen -r session_name

3.3 Beenden Sie die Sitzung mittendrin, aber das Programm läuft weiter:

Wenn Sie eine screen 会话中退出,但不终止正在运行的程序,你可以按下 Ctrl + A,然后按下 D Sitzung beenden möchten, ohne das laufende Programm zu beenden, können Sie Strg + A und dann D drücken.

Dies wird von der screen Sitzung getrennt, aber das Programm läuft weiterhin im Hintergrund.

Beispiel: Verwenden Sie Secret, um mehrere Sitzungen zu öffnen und Programme in der Sitzung auszuführen.

Jede Sitzung entspricht einem logischen Terminal. Sie können die Sitzung beenden und das Programm weiterhin ausführen.

$ screen -S appDemo_session ./appDemo.lua
# 开启新的会话,并执行appDemo脚本程序
> help
Available commands:
1. show
2. exit
3. help
4. run
> 
# 按ctrl+AD 退出会话
[detached from 1546455.appDemo_session]
$ screen -r appDemo_session
[detached from 1546455.appDemo_session]
$
$
$ screen -ls# 查看所有会话
There is a screen on:
1546455.appDemo_session (2024年01月24日 10时01分53秒) (Detached)
1 Socket in /run/screen/S-zsh.
$

3.4 Beenden einer screen Sitzung:

Wenn Sie eine screen 会话并停止其中的程序,你可以首先使用 screen -r [会话名称或ID] 重新连接到该会话,然后按下 Ctrl + C Sitzung beenden und die darin enthaltenen Programme stoppen möchten, können Sie sich zunächst mit screen -r [Sitzungsname oder ID] erneut mit der Sitzung verbinden und dann Strgdrücken > + C, um das Programm zu beenden.

Dann können Sie exit verwenden oder Strg + D drücken, um die exit 或按 Ctrl + D 来结束该 screen Sitzung zu beenden.

$ screen -S appDemo_session ./appDemo.lua
-------------以下在在会话中的逻辑终端显示,退出后会消失
> help
Available commands:
1. show
2. exit
3. help
4. run
> exit
exitCLI
-------------
[screen is terminating]
$

3.5 Mehrere Fenster erstellen:

In derselben screen 会话中,你可以使用 Ctrl + A 然后再按 C Sitzung können Sie Strg + A verwenden und dann C drücken, um ein neues Fenster zu erstellen.

Jedes Fenster kann seinen eigenen Befehlszeilenverlauf haben. Um das Fenster zu wechseln, drücken Sie einfach Ctrl + A 然后按 N(下一个)或 P (Zurück).

Um ein Fenster zu schließen, drücken Sie einfach Ctrl + A 然后按 K und wählen Sie das Fenster aus, das Sie schließen möchten.

3.6 Benennungsfenster:

Sie können das Fenster zur leichteren Identifizierung benennen. Drücken Sie einfach Ctrl + A 然后按 A(umbenennen). Geben Sie den neuen Namen ein und drücken Sie die Eingabetaste.

3.7 Alle Fenster anzeigen,

Sie können Strg+a und dann die Taste w drücken. Dadurch wird eine Liste aller Fenster in der aktuellen Sitzung angezeigt, einschließlich der Nummer und des Namens des Fensters. Ctrl+a,然后按下w键。这将显示当前screen

$ screen -S appDemo_session ./appDemo.lua
-------------以下在在会话中的逻辑终端显示,退出后会消失
> help
Available commands:
1. show
2. exit
3. help
4. run
>


$ ls
appDemo.lua
# 按ctrl+A 然后按K,输入y表示结束当前窗口
Really kill this window [y/n]

Erstellen Sie mehrere Fenster in einer Sitzung

$ ls
appDemo.lua
# 按三次ctrl+a,然后按c,创建三个各自独立的窗口,每个窗口有自己的命令行历史


# 然后按 ctrl+a,然后按w查看所有窗口
0$ appDemo.lua1$ bash2-$ bash3*$ bash

# 现在相当于一个会话appDemo_session中有四个窗口,需要在四个窗口都exit才能退出该会话

二、ctrl+Z停止了进程之后,怎么再进入该程序?

在Unix和Linux系统中,当你使用Ctrl+Z将一个程序暂停并放到后台时,该程序实际上是被挂起(暂停)了。

为了再次运行这个程序,你可以使用以下方法:

  • bg (Background) :使用bg命令可以将挂起的程序放到后台继续运行。
  • bg
  • fg (Foreground) :如果你想要将程序重新移到前台,可以使用fg命令。
  • fg %1

    其中%1是你想要移到前台的挂起程序的编号。你可以使用jobs命令查看挂起的程序的编号。

    3. jobs:

    使用jobs命令可以列出当前挂起的程序。这些程序的编号可以帮助你确定要使用fgbg命令时应该使用的编号。

    jobs -l# 列出所有挂起的程序及其PID
  • kill:如果你想要结束一个挂起的程序,可以使用kill命令。但是,首先确保你真的想要结束它。
  • kill %1

    请注意,上述方法主要适用于shell环境中。如果你在图形界面中(如使用X Window System)运行程序,那么你可能需要使用不同的方法来控制程序的运行。

    三、综合example示范

    $ ./student
    
    ===== 学生信息管理系统 =====
    1. 录入学生信息
    2. 显示学生信息
    3. 查询学生信息
    4. 修改学生信息
    5. 删除学生信息
    6. 退出
    请选择操作: ^Z
    [1]+已停止 ./student
    $ bg
    [1]+ ./student &
    
    [1]+已停止 ./student
    $ jobs -l
    [1]+ 1545288 停止 (tty 输入) ./student
    
    
    $ ./stu11
    
    Student Information Management System
    1. Add Student
    2. Display Students
    3. Search Student
    4. Delete Student
    5. Exit
    Enter your choice: ^Z
    [2]+已停止 ./stu11
    $ jobs -l
    [1]- 1545288 停止 (tty 输入) ./student
    [2]+ 1545290 停止./stu11
    $
    $ ./appDemo.lua
    > help
    Available commands:
    1. show
    2. exit
    3. help
    4. run
    > ^Z
    [2]+已停止 ./appDemo.lua
    $ jobs -l
    [1]- 1545480 停止./stu11
    [2]+ 1545484 停止./appDemo.lua
    $ bg
    [2]+ ./appDemo.lua &
    $ fg %2
    ./appDemo.lua
    
    Unknown command. Type 'help' for available commands.
    > help
    Available commands:
    1. show
    2. exit
    3. help
    4. run
    > ^Z
    [2]+已停止 ./appDemo.lua

    Das obige ist der detaillierte Inhalt vonSo wechseln Sie unter einem Linux-System reibungslos zwischen verschiedenen Anwendungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:mryunwei.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen