Rumah  >  Artikel  >  tutorial komputer  >  Bagaimana untuk menukar dengan lancar antara aplikasi yang berbeza di bawah sistem Linux

Bagaimana untuk menukar dengan lancar antara aplikasi yang berbeza di bawah sistem Linux

王林
王林ke hadapan
2024-02-19 15:00:09554semak imbas

Mencapai penukaran antara aplikasi yang berbeza melalui proses penukaran hadapan dan belakang.

Latar Belakang: Selepas Linux memulakan program, ia beralih ke latar belakang untuk pelaksanaan dan mahu terus beroperasi di Linux.

Di Linux, anda boleh menggunakan kaedah berikut untuk membuat program bermula dan keluar di latar belakang tetapi masih meneruskan prosesnya:

Bagaimana untuk menukar dengan lancar antara aplikasi yang berbeza di bawah sistem Linux

1 Linux memulakan program untuk dilaksanakan di latar belakang

1. Kegunaan nohup&:

$ nohup your_program &

Gunakan simbol nohup命令可以使程序忽略挂断信号(SIGHUP),这样即使你退出了终端,程序也会继续运行。& untuk membuat program berjalan di latar belakang.

2. Kegunaan ctrl+Z:

Jika anda telah memulakan program di latar depan, anda boleh menggunakan arahan ctrl+z untuk mengalihkannya ke latar belakang:

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

3. Kegunaan screen:

screen ialah pemultipleks terminal yang dijalankan pada sistem UNIX dan Linux yang membolehkan pengguna melancarkan berbilang terminal maya pada satu terminal fizikal pada mesin yang sama.

Dengan mencipta sesi baharu, anda boleh menjalankan program di dalamnya dan sesi akan kekal aktif walaupun anda keluar dari terminal. Anda kemudiannya boleh menyambung semula ke sesi untuk melihat dan mengawal pelaksanaan program.

Ciri skrin

Skrin mempunyai tiga fungsi:

  • 会话恢复: Selagi Skrin itu sendiri tidak ditamatkan, sesi yang berjalan di dalamnya boleh disambung semula. Ini amat berguna untuk pengguna yang log masuk dari jauh - walaupun sambungan rangkaian terganggu, pengguna tidak akan kehilangan kawalan ke atas sesi baris arahan yang telah mereka buka. Hanya log masuk ke hos sekali lagi dan jalankan skrin -r untuk menyambung semula sesi. Juga apabila keluar buat sementara waktu, anda juga boleh melaksanakan perintah detach untuk menggantung Skrin (beralih ke latar belakang) sambil memastikan program di dalamnya berjalan seperti biasa. Ini sangat serupa dengan VNC di bawah antara muka grafik.
  • 多窗口: Dalam persekitaran Skrin, semua sesi berjalan secara bebas dan mempunyai nombor, input, output dan cache tetingkap mereka sendiri. Pengguna boleh bertukar antara tetingkap yang berbeza melalui kekunci pintasan, dan boleh mengubah hala input dan output setiap tetingkap secara bebas.
  • 会话共享: Skrin membenarkan satu atau lebih pengguna log masuk ke sesi beberapa kali daripada terminal berbeza dan berkongsi semua ciri sesi (seperti melihat output yang sama). Ia juga menyediakan mekanisme untuk kebenaran akses tetingkap dan boleh melindungi tetingkap dengan kata laluan.

Cara menggunakanscreen: Pasang skrin pemasangan sudo apt

3.1 Buat sesi

$ screen -S session_name your_program

3.2 Untuk menyambung semula sesi ini:

$ screen -r session_name

3.3 Keluar dari sesi pertengahan, tetapi program terus berjalan:

Jika anda ingin keluar dari sesi screen 会话中退出,但不终止正在运行的程序,你可以按下 Ctrl + A,然后按下 D tanpa menamatkan program yang sedang berjalan, anda boleh menekan Ctrl + A dan kemudian D.

Ini akan berpisah daripada sesi screen, tetapi program masih akan berjalan di latar belakang.

Contoh: Gunakan rahsia untuk membuka berbilang sesi dan melaksanakan program dalam sesi.

Setiap sesi adalah bersamaan dengan terminal logik Anda boleh keluar dari sesi dan biarkan program masih berjalan.

$ 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 Menamatkan sesi screen:

Jika anda ingin menamatkan sesi screen 会话并停止其中的程序,你可以首先使用 screen -r [会话名称或ID] 重新连接到该会话,然后按下 Ctrl + C dan menghentikan program di dalamnya, anda boleh mula-mula menyambung semula ke sesi menggunakan screen -r [nama sesi atau ID] dan kemudian tekan Ctrl + C untuk menamatkan atur cara.

Kemudian, anda boleh menggunakan keluar atau tekan Ctrl + D untuk menamatkan sesi exit 或按 Ctrl + D 来结束该 screen.

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

3.5 Cipta berbilang tetingkap:

Dalam sesi screen 会话中,你可以使用 Ctrl + A 然后再按 C yang sama, anda boleh menggunakan Ctrl + A dan kemudian tekan C untuk mencipta tetingkap baharu.

Setiap tetingkap boleh mempunyai sejarah baris arahan sendiri. Untuk menukar tetingkap, hanya tekan Ctrl + A 然后按 N(下一个)或 P (Sebelumnya).

Untuk menutup tetingkap, hanya tekan Ctrl + A 然后按 K dan pilih tetingkap yang ingin anda tutup.

3.6 Tetingkap penamaan:

Anda boleh menamakan tetingkap untuk pengenalan mudah. Hanya tekan Ctrl + A 然后按 A(namakan semula). Masukkan nama baharu dan tekan Enter.

3.7 Lihat semua tingkap,

Anda boleh menekan Ctrl+a, kemudian tekan kekunci w. Ini akan memaparkan senarai semua tetingkap dalam sesi semasa, termasuk nombor dan nama tetingkap. 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]

Buat berbilang tetingkap dalam satu sesi

$ 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

    Atas ialah kandungan terperinci Bagaimana untuk menukar dengan lancar antara aplikasi yang berbeza di bawah sistem Linux. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan:
    Artikel ini dikembalikan pada:mryunwei.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam