IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> Linux后台运行程序(可退出登录|断开ssh) -> 正文阅读

[系统运维]Linux后台运行程序(可退出登录|断开ssh)

Linux后台运行程序

有时候一些Web应用或者脚本啥的希望服务器后台运行,需要运行后关掉终端、退出登录、断开ssh不影响脚本或程序的运行。

nohup + screen

1、利用screen创建独立运行(孤儿)的会话session。

$ screen -S example1	# 创建一个名为example1的session

创建完自动进入

2、在session中利用nohup将应用挂载到后台并将输出重定向到文件

# 例如ls
$ nohup ls /home >> /tmp/ls.log 2>&1 &

3、从session暂离

Ctrl + a d # 按住Ctrl后先按a再按d。

因为他是孤儿进程,所以只要不关闭机器或者kill它,他就不会结束,当然,可以自己结束。

关于nohup

nohup 命令运行由 Command参数和 Arg参数构成,忽略(SIGHUP)信号。

nohup 是 no hang up 的缩写,意为不挂断,但没有后台运行,终端不能标准输入。结合&可挂到后台

在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,或者 >>/dev/null 扔掉

语法:

nohup [命令]] [参数] [(其他操作) &]	# &表示挂起

关于screen

1、简介

? Screen是一个全屏窗口管理器,它在多个进程(通常是交互式shell)之间多路传输物理终端。每个虚拟终端提供DEC VT100终端的功能,此外,还提供ANSI X3.64(ISO 6429)和ISO 2022标准中的若干控制功能(例如,插入/删除行和支持多个字符集)。每个虚拟终端都有一个回滚历史缓冲区和一个复制粘贴机制,允许用户在窗口之间移动文本区域。当screen被调用时,它会创建一个包含shell(或指定命令)的窗口,然后就可以不打扰您了,这样您就可以像平常一样使用这个程序了。然后,您可以随时使用其他程序(包括更多shell)创建新的(全屏)窗口,关闭当前窗口,查看活动窗口列表,打开和关闭输出日志记录,在窗口之间复制文本,查看回滚历史记录,在窗口之间切换,所有的窗口都完全独立地运行它们的程序。当程序的窗口当前不可见时,甚至当整个屏幕会话与用户终端分离时,程序仍继续运行。

2、语法

$ screen [参数] [内容]
 
-A	# 将所有的视窗都调整为目前终端机的大小。
-d   <作业名称>	# 将指定的screen作业离线。
-h   <行数>	# 指定视窗的缓冲区行数。
-m	# 即使目前已在作业中的screen作业,仍强制建立新的screen作业。
-r   <作业名称>	# 恢复离线的screen作业。
-R  # 先试图恢复离线的作业。若找不到离线的作业,即建立新的screen作业。
-s  # 指定建立新视窗时,所要执行的shell。
-S   <作业名称>	# 指定screen作业的名称。
-v  # 显示版本信息。
-x  # 恢复之前离线的screen作业。
-ls	# 显示目前所有的screen作业。
-wipe	# 检查目前所有的screen作业,并删除已经无法使用的screen作业。

3、快捷键

在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始。

Ctrl + a +功能
?Help,显示简单说明
"列出终端列表
A重命名终端
c创建新的终端,并切换到该终端
d暂时断开会话,但所有任务都依然执行
k关闭当前终端,并切换到下一个终端(当没终端时 退到原始shell终端)
n切换到下一个终端
p切换到上一个终端
t显示当前时间,和系统的 load
S新建水平线分割终端
Tab水平线切换终端
X关闭当前终端
+扩大当前终端
-缩小当前终端
[Space]窗口切换
0-9在0-9个终端之间切换
[Ctrl + a]最近使用的2个窗口切换
w列出终端列表
x锁住当前窗口,需用用户密码解锁
z把当前会话放到后台执行,用 shell 的 fg 命令则可回去。
exit关闭当前终端
:screen 新建 screen 终端,并运行命令
:resize 改变当前窗口高度为
:quit退出 screen 关闭所有 screen 终端,结束其中所有任务

选择模式下操作

Ctrl + a + (进入选择模式)选择模式下功能
或 Ctrl-u光标上移一页
或 Ctrl-d光标下移一页
或 h光标左移一格
或 j光标下移一行
或 k光标上移一行
或 l光标右移一格
选择开始,选择结束
退出选择模式
Ctrl-a ]粘贴选择的内容

4、例:

    screen -S name	# 新建一个叫name的session
    screen -ls		# 列出当前所有的session
    screen -r name	# 回到name这个session
    screen -d name	# 远程detach某个session
    screen -d -r name	# 结束当前session并回到name这个session
    [Ctrl + a + d]	# 暂离session (回到之前的shell)
  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-08-22 13:52:26  更:2021-08-22 13:54:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:38:15-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码