百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

第十章 进程介绍(续二)(进程小说)

nanshan 2024-10-26 11:08 8 浏览 0 评论

10.12 列出后台的工作jobs

进程这一概念是对系统而言,对每一个控制台,我们则称为job(工作)。与进程有进程号一样,使用kill、renice等指令操作进程使用进程号,使用fg、bg指令操作job使用工作号。

1.jobs命令:用于列出系统当前的后台进程

2.在中括号中是工作号,用于去杀死他们或把他们拉回前台(fg)

3.引用工作号使用%号

4.浏览你的工作:

Jobs命令也报告暂停的和后台的进程状态。此工作ID报告可用于其他的命令去管理此进程。

$ jobs

[1]+ Stopped man bash

[2]- Runing find / -name joe > outpot 2 >& &

10.13 恢复暂停的工作

1.当一个命令被暂停或被放到后台时,它能被用fg命令拉回到前台

2.语法:

fg [job_number]%

3. 在后台中恢复工作

当一个耗时的进程在前台被启动时,使用一个<ctrl-z>和bg组合是很有用的。

举例说明,以下的顺序将把前台的find进程放到后台:

$ find / -name “*·px” 2 > /dev / null >ps.out

^z

$ bg %1 (工作号)

$ jobs 查看后台工作号

$ fg “1” 把1号工作放到前台

%1在shell中引用工作ID。如果在同一个shell中有另一个工作正在运行,此工作ID号可以变更。如果怀疑,使用jobs去验证工作号。

对于job我们也可以通过kill [-singnal]% job ID来控制。

例:

$ kill %1 杀死后台运行的1号程序

10.14 使用nohup

1.使用nohup去启动一个后台进程,此进程在控制台退出或终端关闭后仍然继续

$nohup tar -cvf source.tar /opt/src &

$exit

2. 默认的,从nohup输出的工作写到文件nohup.out

3.运行后台进程

nohup command运行此给定的命令忽略挂断信号,以便此命令能在你退出(或者关闭X终端窗口)后能够继续在后台运行。

nohup通过5提升command的调度权限。如果标准输出是一个终端,它和标准出错被重定向以便他们被应用到文件nohup.out;如果不能被写到此文件,他们被应用到文件$HOME/nohup.out。如果不能被写到此文件,此命令不运行。

单独使用nbhup没有任何意义,系统不会自动添加&,把进程变为后台进程。

有些指令如wgets,本身有参数可代替nohup

10.15 复合命令

复合命令就是使命令在同一行运行。

1.在命令的尾部用分号“;”将命令列表分开

用于在一行内分隔两个独立的命令,表示一行已结束,作用相当于回车键。

pwd;ls -l

2.子shell激活 — ()小括号

在小括号内的命令行表示激活一个子shell后并在子shell中运行。

(HOME=/usr/share)echo $ HOME

$(cd /usr; du) &

3. 复合命令举例说明

⑴ 假如你想保留一个计算机用户登录的次数连同日期和时间保存为一日志文件。这有两个命令能达到目的:

$ date >> logfile

$ who | wc -l >> logfile

⑵ 上面的命令顺序需要你输入两个命令行,追加到logfile文件两次。一般的键入大量的命令是必要的。当写到终端的时候,这项艰苦的工作能被简化,通过在同一行上用分号(;)将命令分开进行命令组合简化。

$ date ;who | wc -l

但是如果您企图将标准输出重定向,这将导致不能工作。

$ date ;who | wc -l >> logfile

⑶ 如果想两个命令都运行,但只有第二个命令结果重定向输出到logfile文件,可以在一个子shell组将联合这些命令。因此他们将被在一个单位里处理。当一个命令组被放置在小括号里的时,一个新的子shell被激活,并且输出能被重定向,如同它是一个命令。

$(date ;who | wc -l ) >> logfile

10.16 本单元重要文件和命令

1.重要命令

kill

killall

bg

fg

nice

renice

ps

top

gnome-system-monitor

10.17 进程控制试验

估计时间: 30分钟

目标: 练习与进程控制有关的不同命令

试验的起点: 安装Red Hat Linux,并且能正常工作,有一个用户名和密码都为student的用户。

1.进程控制

场景描述:

在这个任务中,大家会启用几个进程,然后使用bash的进程控制方法来控制它们。你将会在几个控制台间切换,注意你在哪个控制台上运行命令。

任务:

⑴ 开始使用student用户在第一、二个控制台(tty1、tty2)上登录。

⑵ 到tty1上,然后运行以下命令:

$ (while true; do echo –n A >> log; sleep 1;done)

⑶ 注意这个控制台现在因为在运行你的进程,所以处于忙的状态(进程在前台运行),这个进程不断把字母“A”添加进~/log文件中去,到tty2上运行以下命令:

$ tail -f log

你会看到“A”不断增长

⑷ 切换回控制台tty1,按下<ctrl-z>,shell会告诉你进程停止了,告诉你job号码为1,切换回控制台2,你会看到文件不变了。

⑸ 回到tty1,再次启动进程,运行jobs会显示job[1]在运行了,到tty2上看到文件继续增长了:

$ bg

$ jobs

⑹ 到tty1上,按向上的箭头,重新找回第二步时的命令,把A换成B,在最后加上&,然后在把B换成C:

$ (while true; do echo –n B >> log; sleep 1;done)

$ ^B^C

⑺ 输入jobs确认三个进程都在运行,到tty2上看到每秒钟会有三个字母增长。

⑻ 在第4步你按ctrl-z时,实际上是给进程发一个信号,使用kill命令也可以给它们发信号,使用kill来显示信号列表和标号,然后发一个SIGSTOP(19)的信号给job[1],到tty1上执行:

$ kill –l

$ kill -19 %1

⑼ 输入jobs,确认job[1]停止,到tty2上看结果是否停止。

⑽ 用kill重新启动进程,使用SIGCONT(18)信号,你会看到进程又重新启动了。(参考第8步的实现方法)

⑾ 使用kill命令的SIGTERM(15)信号,也是kill的默认信号,来结束三个进程,先结束job[2]和job[3]时,用jobs来看一下它们的状态是不是terminated的:

$ kill %2 %3

$ jobs

⑿ 结束最后的进程:

$ fg

$ <ctrl-c>

⒀ 在tty1上使用jobs命令来看一下,然后在tty2上看是否进程真的结束了,然后按【ctrl-c】结束tail进程,注销。

⒁ 在tty1上删除 ~/log文件

相关推荐

ssh终端xshell日志查看命令(xshell怎么看日志)

现在我们云服务器运维较多用的是SSH工具,其中常用的包括PUTTY、XSHELL等,其实大同小异界面UI稍微不同,但是都可以进入远程连接。这里有朋友提到如何查看服务器的日志文件,这个其实和是否使用XS...

使用 Fail Ban 日志分析 SSH 攻击行为

通过分析`fail2ban`日志可以识别和应对SSH暴力破解等攻击行为。以下是详细的操作流程和关键分析方法:---###**一、Fail2ban日志位置**Fail2ban的日志路径因系统配置...

如何高效读取Linux日志文件?这些命令要熟记于心!

在Linux系统中,日志文件通常存储在/var/log目录下。比如,/var/log/syslog(或/var/log/messages,视发行版而定)记录系统整体事件,/var/log/a...

Windows服务器远程登录日志查询方法,linux查看登录日志方法

概述本文介绍Windows、Linux服务器查询系统的远程登录日志方法。根据服务器所使用的操作系统不同,有以下两种查询方法。Linux操作系统的登录日志查询通过远程连接登录Linux服务器,使用roo...

iptables防火墙如何记录日志(防火墙日志查看)

例如:记录所有ssh服务的登录的日志首先,我们需要了解如何将所有的iptables的INPUT链数据包记录到/var/log/messages中。如果你已经有一些iptables规则了,那么将记录日志...

如何安全管理SSH密钥以防止服务器被入侵

SSH密钥安全管理实施指南(2025年更新版)一、密钥生成与存储规范高强度密钥生成bashCopyCodessh-keygen-ted25519-a100#生成ED25519算法密钥(比...

在CentOS上安装nginx服务器(centos搭建代理服务器)

一、环境描述1.虚拟机配置CPU:单核内存:2GB硬盘:120GBIP:10.24.17.1082.操作系统版本:CentOS6.6x86_64安装方式:Minimal3.虚拟化环境VM...

CentOS7安全加固的一份整理规划建议

◆更新系统:及时更新CentOS7操作系统版本和安全补丁,确保系统以最新状态运行。◆关闭不必要的服务:在运行系统时,应关闭不需要的服务和端口,以减少系统暴露的攻击面。◆安装防火墙:使用iptables...

第四十七天-二叉树,centOS安装tomcat,Maven,vsftpd

学习笔记:1.Maven是Apache下的一个纯Java开发的开源项目。基于项目对象模型(缩写:POM)概念,Maven利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。Maven...

Linux远程桌面连接使用教程 Widows终端远程连接Linux服务器

一、前言为什么不是远程连接Linux服务器?因为我不会,远程连接window我就用电脑自带的“远程桌面连接”。以下所述都是在CentOS操作系统下的。服务器刚换成Linux的时候很迷茫,感觉无从下手...

CentOS 安全加固操作,保护你的操作系统

系统加固是保障系统安全的重要手段,对于维护企业数据安全、用户隐私以及系统稳定运行具有重要意义。加固后的系统更加健壮和稳定,能够有效减少因安全问题导致的系统故障和停机时间,提高系统的可用性和可靠性。通过...

Dockerfile部署Java项目(docker如何部署java项目)

1、概述本文主要会简单介绍什么是Docker,什么是Dockerfile,如何安装Docker,Dockerfile如何编写,如何通过Dockerfile安装jar包并外置yaml文件以及如何通过do...

CentOS7云主机部署Fail2ban阻断SSH暴力破解

关于Fail2banFail2ban可以监视你的系统日志,然后匹配日志的错误信息(正则式匹配)执行相应的屏蔽动作(一般情况下是调用防火墙屏蔽)例如:当有人在试探你的HTTP、SSH、SMTP、FTP密...

在CentOS7上用源码编译安装PostgreSQL

1、新建postgres用户#useraddpostgres&&passwdpostgres2、安装依赖包#yum-yinstallmakegccgcc-c++readline...

pure-ftpd 使用(ftp prompt命令)

pure-ftpd是一个免费的ftp软件,其他介绍就不多说了。我们直接开始主题安装centosyuminstallepel-releaseyuminstallpure-ftpd配置备份原配置...

取消回复欢迎 发表评论: