目录
2. 使用ctrl+Z" >2. 使用ctrl+Z
3.使用screen" >3.使用screen
3.1 创建会话
3.2 要重新连接到此会话:
3.3 中途退出会话,但程序继续运行:
3.4 结束一个 screen 会话:
3.5 创建多个窗口:
3.6 命名窗口:
3.7 查看所有窗口,
二、ctrl+Z停止了进程之后,怎么再进入该程序?" >二、ctrl+Z停止了进程之后,怎么再进入该程序?
三、综合example示范" >三、综合example示范
首页 电脑教程 电脑知识 如何在Linux系统下流畅切换不同的应用

如何在Linux系统下流畅切换不同的应用

Feb 19, 2024 pm 03:00 PM
linux 程序 后台

通过进程的前后台切换方式实现不同应用的切换。

背景:linux启动一个程序后,切换到后台执行,想继续在linux操作。

在Linux中,你可以使用以下几种方法使一个程序在后台启动并退出,但仍然保持其进程运行:

如何在Linux系统下流畅切换不同的应用

一、Linux启动一个程序在后台执行

1. 使用nohup&

$ nohup your_program &

使用nohup命令可以使程序忽略挂断信号(SIGHUP),这样即使你退出了终端,程序也会继续运行。&符号使程序在后台运行。

2. 使用ctrl+Z

如果你已经在前台启动了程序,可以使用ctrl+z命令将其移到后台:

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

3.使用screen

screen是一个在UNIX和Linux系统上运行的终端复用器,它允许用户在同一台机器上的一个物理终端上启动多个虚拟终端。

通过创建一个新的会话,你可以在其中运行程序,并且即使退出终端,该会话仍将保持活动状态。随后,你可以重新连接到会话来查看和控制程序的运行。

screen的功能

screen的功能大体有三个:

  • 会话恢复:只要Screen本身没有终止,在其内部运行的会话都可以恢复。这一点对于远程登录的用户特别有用——即使网络连接中断,用户也不会失去对已经打开的命令行会话的控制。只要再次登录到主机上执行screen -r就可以恢复会话的运行。同样在暂时离开的时候,也可以执行分离命令detach,在保证里面的程序正常运行的情况下让Screen挂起(切换到后台)。这一点和图形界面下的VNC很相似。
  • 多窗口:在Screen环境下,所有的会话都独立的运行,并拥有各自的编号、输入、输出和窗口缓存。用户可以通过快捷键在不同的窗口下切换,并可以自由的重定向各个窗口的输入和输出。
  • 会话共享:Screen可以让一个或多个用户从不同终端多次登录一个会话,并共享会话的所有特性(比如可以看到完全相同的输出)。它同时提供了窗口访问权限的机制,可以对窗口进行密码保护。

如何使用screen :安装 sudo apt install screen

3.1 创建会话

$ screen -S session_name your_program

3.2 要重新连接到此会话:

$ screen -r session_name

3.3 中途退出会话,但程序继续运行:

如果你想从 screen 会话中退出,但不终止正在运行的程序,你可以按下 Ctrl + A,然后按下 D 会话中退出,但不终止正在运行的程序,你可以按下 Ctrl + A,然后按下 D

这将会从 screen 会话中分离,但程序仍然在后台运行。

示例:使用secreen开启多个会话在会话中执行程序。

每个会话相当于一个逻辑终端,可以退出会话,让程序依然运行。

$ 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 结束一个 screen 会话:

如果你想结束一个 screen 会话并停止其中的程序,你可以首先使用 screen -r [会话名称或ID] 重新连接到该会话,然后按下 Ctrl + C 会话并停止其中的程序,你可以首先使用 screen -r [会话名称或ID] 重新连接到该会话,然后按下 Ctrl + C 来终止程序。

接着,你可以使用 exit 或按 Ctrl + D 来结束该 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 创建多个窗口:

在同一个 screen 会话中,你可以使用 Ctrl + A 然后再按 C 会话中,你可以使用 Ctrl + A 然后再按 C 来创建一个新的窗口。

每个窗口可以有自己的命令行历史。要切换窗口,只需按 Ctrl + A 然后按 N(下一个)或 P(上一个)。

要关闭窗口,只需按 Ctrl + A 然后按 K,然后选择要关闭的窗口。

3.6 命名窗口:

你可以给窗口命名以方便识别。只需按 Ctrl + A 然后按 A(重命名)。输入新名称并按回车。

3.7 查看所有窗口,

可以按下Ctrl+a,然后按下w键。这将显示当前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]

在一个会话中创建多个窗口

$ 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

    以上是如何在Linux系统下流畅切换不同的应用的详细内容。更多信息请关注PHP中文网其他相关文章!

    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Stock Market GPT

    Stock Market GPT

    人工智能驱动投资研究,做出更明智的决策

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    热门话题

    如何在Linux中实时进程 Linux FIFO调度策略 如何在Linux中实时进程 Linux FIFO调度策略 Sep 03, 2025 pm 12:39 PM

    要让Linux进程以实时FIFO调度运行,需使用chrt命令或sched_setscheduler系统调用设置调度策略与优先级,如sudochrt-f99./app或在C程序中配置SCHED_FIFO及优先级参数,同时确保进程具有CAP_SYS_NICE能力或root权限,并通过limits.conf配置rtprio和memlock限制以保障实时性,避免优先级反转需使用支持优先级继承的互斥锁。

    爱思助手正版下载入口_爱思助手iPhone安装链接 爱思助手正版下载入口_爱思助手iPhone安装链接 Sep 16, 2025 am 11:30 AM

    爱思助手正版下载入口在官网https://www.i4.cn/,提供电脑端和手机端下载,支持设备管理、应用安装、模式切换、屏幕投射及文件管理等功能。

    Linux如何安装deb格式软件包 Linux如何安装deb格式软件包 Sep 03, 2025 pm 12:36 PM

    安装.deb包常用方法包括:使用dpkg命令安装并用apt修复依赖;2.推荐使用aptinstall./package_name.deb自动处理依赖;3.图形化方式可双击文件通过软件中心安装;4.安装后可用dpkg-l或dpkg-s检查软件包状态。

    如何在Linux系统上管理用户和组 如何在Linux系统上管理用户和组 Sep 05, 2025 am 08:01 AM

    创建用户用adduser或useradd,2.修改用户用usermod,3.删除用户用deluser或userdel,4.创建组用groupadd,5.添加用户到组用usermod-aG,6.从组中移除用户用gpasswd-d,7.删除组用groupdel,8.查看信息用whoami、groups、getent等命令,9.遵循最佳实践如避免直接使用root、定期清理账户、设置密码策略并合理分配组权限,通过掌握这些核心命令并根据发行版选择合适工具,可有效实现Linux用户和组的管理。

    如何在Linux上运行Windows程序 如何在Linux上运行Windows程序 Sep 18, 2025 am 03:25 AM

    torunwindowsProgramsonLinux,TrytheSemethods:1。usesewinetodirectlyrun.exefiles.2.installplayonlinuxforeasierwinemanagement.3.setupawindowsvirtualmachinewithvirtualbox.4.uselututristointristristoinstallandrundrundrunwindrundrunwindrunwindrunwindrundrunwindremeseameameameameamemellysly。

    华为HarmonyOS 6系统取消'NEXT”后缀:以后都是原生鸿蒙 华为HarmonyOS 6系统取消'NEXT”后缀:以后都是原生鸿蒙 Sep 24, 2025 pm 04:12 PM

    9月18日最新消息,华为HarmonyOS6已启动多轮面向开发者的预览版推送,近期更首次向部分尝鲜用户开放体验资格。根据用户反馈,当前系统名称已不再显示“NEXT”后缀,正式更名为HarmonyOS6.0。华为最初于2023年8月的开发者大会首次提出HarmonyOSNEXT这一命名,旨在标志鸿蒙系统迈入全新发展阶段,实现真正的原生自研。HarmonyOSNEXT最核心的突破在于彻底采用自主研发的系统底层架构,全面移除Linux内核及安卓AOSP代码,仅运行基于HarmonyOS内核的应用程序,

    如何在Linux上拍摄屏幕截图 如何在Linux上拍摄屏幕截图 Sep 15, 2025 am 03:35 AM

    TotakesCreenshotsonLinux:1。useprtscnkeyforfullscreen,alt prtscnforactiveWindow.2.UseGnomesCreensHottoolShottoolFormoreOptions.3.UseGeSnome-ScreenshotCommandInterminal.4.InstallandSallandSallansCrotforlightweightlightweightweightlightweightweightlightweightlightweightCommand-command-command-lineCapturing。

    如何在Linux上安装VS代码 如何在Linux上安装VS代码 Sep 16, 2025 am 09:04 AM

    toinstallvScodeonLinux,Usetheeficialaptrepositoryforautomationupdates,SnapforCross-Distribution-Compatibility,Oramanualtarballforfullcontrol.ChooseBashioneBasedonyourSasedonyourSasedonyoursyStemsteneds和Needs。

    See all articles