Linux入门篇-作业(jobs)调度(本质仍然是进程)
简介
①前台进程(front process)运行在用户眼前的进程就是前台进程,当用户眼前运行一个前台进程时,如果想运行其他进程,必须关闭当前前台进程,或者将该前台进程放到后台(backgrand process)运行。②后台进程后台进程不会影响用户当前shell运行其他进程。并不是所有的进程都能作为后台进程运行在后台的。(比如说top命令)如何判断一个进程到底应不应该放在后台运行呢?1.运行时间较长,用户不想在前台等待,该进程可以运行结束2.服务(service)进程,用户想永远让其处于运行状态
[root@RHCSA-EXAM ~]# cat &
[1] 11825
[root@RHCSA-EXAM ~]#
[1]+ Stopped cat
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# jobs
[1]+ Stopped cat
jobs命令是一个阉割版本的ps,只能查看当前shell运行的后台进程。通过jobs来管理后台进程。
jobs功能有限,管理范围有限。
jobs管理后台进程,也是使用kill命令,只不过,kill命令本身也可以向job id发送相应的信号。
[root@RHCSA-EXAM ~]# jobs
[1]+ Stopped cat
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# kill %1
[root@RHCSA-EXAM ~]#
[1]+ Terminated cat
[root@RHCSA-EXAM ~]# jobs
[root@RHCSA-EXAM ~]#
前台进程和后台进程之间的转换
当前台进程运行时,可以使用ctrl+c停止该进程,也可以使用ctrl+z将该进程放到后台,注意,当一
个进程由前台切换到后台时(ctrl+z),那么该进程的状态就会变成stop,如果你想继续运行该进
程,需要使用kill命令发送让该进程继续运行的信号。
[root@RHCSA-EXAM ~]# jobs
[1]+ Stopped dd if=/dev/zero of=/root/50G bs=1M count=50000
[root@RHCSA-EXAM ~]# bg %1
[1]+ dd if=/dev/zero of=/root/50G bs=1M count=50000 &
[root@RHCSA-EXAM ~]# jobs调整进程的优先级
[1]+ Running dd if=/dev/zero of=/root/50G bs=1M count=50000
&
[root@RHCSA-EXAM ~]# fg %1
dd if=/dev/zero of=/root/50G bs=1M count=50000
调整进程的优先级
4 core,最大允许4个进程同时使用100%的cpu
假如说有5个进程需要运行,且该5个进程都需要占用100%的cpu,如果你觉得哪个进程更需要快速运行
结束,那么就调整这个进程的优先级。
①运行进程的时候就指定优先级
②调整一个已经运行进程的优先级
[root@RHCSA-EXAM ~]# lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 1
Socket(s): 4
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 62
Model name: Intel(R) Xeon(R) CPU E5-2695 v2 @ 2.40GHz
Stepping: 4
CPU MHz: 2400.000
BogoMIPS: 4800.00
Virtualization: VT-x
Hypervisor vendor: VMware
Virtualization type: full
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 30720K
NUMA node0 CPU(s): 0-3
Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss syscall nx rdtscp lm
constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc
cpuid pni pclmulqdq vmx ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt
tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm cpuid_fault
pti ssbd ibrs ibpb stibp tpr_shadow vnmi ept vpid fsgsbase tsc_adjust smep
arat flush_l1d arch_capabilities
[root@RHCSA-EXAM ~]# nice -n 10 cat /dev/zero >> /dev/null &
[7] 17443
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# renice -n -30 17443
17443 (process ID) old priority 10, new priority -20
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]#
服务管理(不好讲)
服务就是进程,进程不一定是服务
服务是具备一定功能的进程,但是有些进程并不具备服务的特征,所以服务一定是进程,但是进程不一
定是服务。
服务也是进程,就意味着服务也享受着之前学习过的进程的概念。
Linux里面的第一个进程,是整个系统的父进程。
在RHEL6版本之前,包括RHEL6,采用的第一个进程叫做init。第一个进程非常重要,因为第一个进程
要负责后面所有其他进程的启动,后面其他进程能否启动成功取决于系统能不能正常运行。
init有问题,通过init进程启动的后续进程都是串行启动的,串行启动就意味着速度慢。
在RHEL7版本,采用第一个进程叫做systemd。该进程相比如init来说,采用并行方式启动后续进程,
并行启动就意味着速度快。
systemd管理服务操作
[root@RHCSA-EXAM ~]# renice -n -40 17443
17443 (process ID) old priority -20, new priority -20
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# killall cat
服务管理
服务就是进程,进程不一定是服务服务是具备一定功能的进程,但是有些进程并不具备服务的特征,所以服务一定是进程,但是进程不一定是服务。服务也是进程,就意味着服务也享受着之前学习过的进程的概念。Linux里面的第一个进程,是整个系统的父进程。在RHEL6版本之前,包括RHEL6,采用的第一个进程叫做init。第一个进程非常重要,因为第一个进程要负责后面所有其他进程的启动,后面其他进程能否启动成功取决于系统能不能正常运行。init有问题,通过init进程启动的后续进程都是串行启动的,串行启动就意味着速度慢。在RHEL7版本,采用第一个进程叫做systemd。该进程相比如init来说,采用并行方式启动后续进程,并行启动就意味着速度快。
systemd管理服务操作
基本上相对较新版本的Linux发行版都支持systemd管理网络服务,ubuntu16.04,rhel7,
suse,opensuse,debian。
systemd管理的内容不仅仅有service,systemd管理的单位是unit,service只是unit中的一
种。
[root@RHCSA-EXAM ~]# systemctl list-units
[root@RHCSA-EXAM ~]# systemctl list-unit-files
我们的课程涉及的unit,只有service和target
systemd管理service
[root@RHCSA-EXAM ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service;
enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-22 09:17:42 CST; 13h ago
Docs: man:NetworkManager(8)
Main PID: 1073 (NetworkManager)
Tasks: 3 (limit: 26213)
Memory: 13.3M
CGroup: /system.slice/NetworkManager.service
└─1073 /usr/sbin/NetworkManager --no-daemon
systemctl status service
[root@RHCSA-EXAM ~]# systemctl status NetworkManager.service
查看服务的状态
[root@RHCSA-EXAM ~]# systemctl stop NetworkManager
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service;
enabled; vendor preset: enabled)
Active: inactive (dead) since Wed 2020-04-22 22:42:05 CST; 7s ago
Docs: man:NetworkManager(8)
Process: 1073 ExecStart=/usr/sbin/NetworkManager --no-daemon
(code=exited, status=0/SUCCESS)
Main PID: 1073 (code=exited, status=0/SUCCESS)
[root@RHCSA-EXAM ~]# systemctl start NetworkManager
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service;
enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-22 22:42:55 CST; 4s ago
Docs: man:NetworkManager(8)
Main PID: 29235 (NetworkManager)
Tasks: 4 (limit: 26213)
Memory: 8.0M
CGroup: /system.slice/NetworkManager.service
└─29235 /usr/sbin/NetworkManager --no-daemon
[root@RHCSA-EXAM ~]# systemctl restart NetworkManager
[root@RHCSA-EXAM ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service;
enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-22 22:43:42 CST; 5s ago
Docs: man:NetworkManager(8)
Main PID: 29421 (NetworkManager)
Tasks: 4 (limit: 26213)
Memory: 4.4M
CGroup: /system.slice/NetworkManager.service
└─29421 /usr/sbin/NetworkManager --no-daemon
[root@RHCSA-EXAM ~]# systemctl disable NetworkManager
Removed /etc/systemd/system/multiuser.target.wants/NetworkManager.service.
Removed /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
Removed /etc/systemd/system/network-online.target.wants/NetworkManagerwait-online.service.
[root@RHCSA-EXAM ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service;
disabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-22 22:43:42 CST; 2min 57s
ago
Docs: man:NetworkManager(8)
Main PID: 29421 (NetworkManager)
Tasks: 3 (limit: 26213)
Memory: 4.3M
CGroup: /system.slice/NetworkManager.service
└─29421 /usr/sbin/NetworkManager --no-daemon
[root@RHCSA-EXAM ~]# systemctl enable NetworkManager
Created symlink /etc/systemd/system/dbusorg.freedesktop.NetworkManager.service →
/usr/lib/systemd/system/NetworkManager.service.
Created symlink /etc/systemd/system/multiuser.target.wants/NetworkManager.service →
/usr/lib/systemd/system/NetworkManager.service.
Created symlink /etc/systemd/system/dbus-org.freedesktop.nmdispatcher.service → /usr/lib/systemd/system/NetworkManagerdispatcher.service.
Created symlink /etc/systemd/system/networkonline.target.wants/NetworkManager-wait-online.service →
/usr/lib/systemd/system/NetworkManager-wait-online.service.
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# systemctl status NetworkManager
● NetworkManager.service - Network Manager
Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service;
enabled; vendor preset: enabled)
Active: active (running) since Wed 2020-04-22 22:43:42 CST; 3min 23s
ago
Docs: man:NetworkManager(8)
Main PID: 29421 (NetworkManager)
Tasks: 3 (limit: 26213)
Memory: 4.3M
CGroup: /system.slice/NetworkManager.service
└─29421 /usr/sbin/NetworkManager --no-daemon
systemd管理target
[root@RHCSA-EXAM ~]# systemctl is-active NetworkManager
active
[root@RHCSA-EXAM ~]# systemctl is-enabled NetworkManager
enabled
[root@RHCSA-EXAM ~]# systemctl stop NetworkManager
[root@RHCSA-EXAM ~]# systemctl disable NetworkManager
[root@RHCSA-EXAM ~]# systemctl is-active NetworkManager
inactive
[root@RHCSA-EXAM ~]# systemctl is-enabled NetworkManager
disabled
systemd管理target
需要了解的只是target的含义。target是由服务组成的一类启动目标,systemd可以设置启
动目标,如果systemd指定了一个target作为启动目录,那么下次系统启动的时候就会启动target里
面的所有服务。
我们需要了解的target有两个,一个是multi-user.target,一个是graphical.target。
multi-user.target就是字符界面的Linux系统
graphical.target就是图形界面的Linux系统
[root@RHCSA-EXAM ~]# systemctl isolate multi-user.target
临时切换到字符界面
如果你的系统安装了图形界面,你切换到字符界面,你按ctrl+alt+F1~F6
[root@RHCSA-EXAM ~]# systemctl isolate graphical.target
临时切换到图形界面
[root@RHCSA-EXAM ~]# systemctl get-default
graphical.target
查看下次开机启动加载哪个target
[root@RHCSA-EXAM ~]# systemctl set-default multi-user.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target →
/usr/lib/systemd/system/multi-user.target.
修改下次开机启动的target
[root@RHCSA-EXAM ~]#
[root@RHCSA-EXAM ~]# systemctl get-default
multi-user.target
[root@RHCSA-EXAM ~]# systemctl set-default graphical.target
Removed /etc/systemd/system/default.target.
Created symlink /etc/systemd/system/default.target →
/usr/lib/systemd/system/graphical.target.
[root@RHCSA-EXAM ~]# systemctl get-default
graphical.target
相关文章:
Linux入门篇-作业(jobs)调度(本质仍然是进程)
简介 之所以叫做作业调度,作业是以shell为单位的,一个shell建立的作业,不会被另外一个shell看到(包 括root),但是仍然可以看到作业对应的进程。①前台进程(front process) 运行在用户…...
vue 监听 取消监听
vue 的 watch 除了可以使用声明式的配置项以外,还可以通过命令式 this.$watch 方法。 如下是我们比较少用的命令式(想要初始只监听一次,必须命令式写法): 监听只运行一次 声明式 export default{data: {showType: fa…...

0103深度优先搜索和单点连通-无向图-数据结构和算法(Java)
文章目录1.1 走迷宫1.2 图的深度优先搜索实现1.3 算法分析及性能1. 4 单点连通性后记1.1 走迷宫 简单的迷宫,如下图1.1-1所示: 探索迷宫而不迷路,我们需要: 选择一条没有标记过的通道,在你走过的路上铺一条绳子&…...

进销存管理系统
技术:Java等摘要:进销存管理系统是为了实现企业仓库商品管理的系统化、规范化和自动化,从而提高企业管理效率而设计开发的管理信息系统。它完全取代了过去一直用人工管理的工作方式,避免了由于管理人员手工操作上的疏忽以及管理质…...

Sonar:VSCode配置SonarLint/SonarLint连接SonarQube
需求描述 公司为项目代码配置了Sonar检测,希望在VSCode中开发项目时能够同步检测结果。 注意事项 SonarQube版本必须为7.9,否则SonarLint无法连接(GitHub-SonarLint-Wiki第一行就有说明)!!!S…...

陀螺仪小车(Forerake-Car)
项目简介:搭建一辆有arduino UNO 与rnf24l01组成的小车;手部安装由arduino nano开发板、nrf24l01、imu构成的手势控制器,利用手势控制器检测手部状态、发送信号对小车进行前进,实现基于卡尔曼滤波的MPU6050姿态结算。 准备工作&am…...
Leetcode Day5 含有重复元素集合的组合+
1、含有重复元素集合的组合 给定一个可能有重复数字的整数数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用一次,解集不能包含重复的组合。 【题目传送门】 思…...

Mac Book pro(M1)使用总结
1、拿到电脑激活的时候,一定要记住账号密码及安全问题的答案。 2、显示隐藏文件夹: 3、显示.git或者gitignore等隐藏后缀的文件: 打开终端 defaults write com.apple.finder AppleShowAllFiles TRUE重启Finder在终端输入 killall Finder …...

QML集成JavaScript
在QML中可以使用现有的QML元素来创建页面,但QML紧密的集成了必要的JavaScript。 但QML中使用JavaScript比较严格,在QML中不可以添加或修改JavaScript全局对象成员,这样可能会使用一个未经声明的变量。 内联JavaScript 一些小型的JavaScript函…...

学习周报3.5
文章目录前言文献阅读摘要介绍方法总结相关性总结前言 本周阅读文献《Multi-step ahead probabilistic forecasting of multiple hydrological》,文献主要提出一种基于三维卷积神经网络、卷积最小门记忆神经网络和变分贝叶斯神经网络的混合深度学习模型(…...
java基础学习篇
java学习 多写(代码、笔记、文章),多练(交流、思维、技能),多分享,多提问、多思考 什么是计算机 由硬件和软件组成,广泛应用在科学计算、数据处理、自动控制,计算机辅…...
Go 语言基础语法及应用实践
Go语言是一门由Google开发的静态类型、编译型的开源编程语言,被设计成简单、高效、安全的语言。作为一门相对年轻的语言,Go语言的使用范围正在不断扩大,特别是在Web开发、云计算、容器化和分布式系统等领域越来越受到欢迎。 在本篇文章中,我们将探讨Go语言的基础语法及应用…...

C语言自定义类型---进阶
之前的文章中有结构体初阶知识的讲解,对结构体不是很了解的小伙伴可以先去去看一下结构体初阶 结构体,枚举,联合结构体结构体类型的声明特殊的声明结构的自引用结构体变量的定义和初始化结构体内存对齐 <3 <3 <3(重点)那为什么存在内…...
85.链表总结
链表总结 链表总结与进阶 抽象数据类型(ADT abstract data type)与抽象数据接口(ADI abstract data Interface) 链表实际上就是对于结构体、结构体指针和结构体内可以包含指向同类型的结构体指针不可以包含指向同类型的结构体的应…...

【博学谷学习记录】超强总结,用心分享|狂野大数据课程【DataFrame的相关API】的总结分析
操作dataFrame一般有二种操作的方式, 一种为SQL方式, 另一种为DSL方式 SQL方式: 通过编写SQL语句完成统计分析操作DSL方式: 领域特定语言 指的通过DF的特有API完成计算操作(通过代码形式)从使用角度来说: SQL可能更加的方便一些, 当适应了DSL写法后, 你会发现DSL要比SQL更加…...

粒子群优化最小二乘支持向量机SVM回归分析,pso-lssvm回归预测
目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 SVM应用实例,粒子群优化最小二乘支持向量机SVM回归分析 代码 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大…...
lavis多模态开源框架学习--安装
安装lavis安装lavis测试安装问题过程中的其他操作安装lavis 因为lavis已经发布在pypi中,所以可以直接利用pip安装 pip install salesforce-lavis测试安装 from lavis.models import model_zoo print(model_zoo) # # Architectures Types # # …...

【IDEA】如何在Tomcat上创建部署第一个Web项目?
看了网上很多教程,发现或多或都缺失了一些关键步骤信息,对于新手小白很不友好,那么今天就教大家如何在Tomcat服务器(本地)上部署我们的第一个Web项目: 共分为三个部分: 1. IDEA创建Web项目&am…...

程序员画流程图的工具Draw.io
Draw.io 是一个很好用的免费流程图绘制工具,制图结果本质上是xml文件,web版和桌面版可以支持导出图像(png或者svg矢量图都可以)。你可以利用它绘制一系列的图表、图示或图形,包括流程图、UML类图、组织结构图、泳道图、E-R 图、文…...

CAPL脚本DBLookup函数动态访问CAN 报文的属性
🍅 我是蚂蚁小兵,专注于车载诊断领域,尤其擅长于对CANoe工具的使用🍅 寻找组织 ,答疑解惑,摸鱼聊天,博客源码,点击加入👉【相亲相爱一家人】🍅 玩转CANoe&…...
QMC5883L的驱动
简介 本篇文章的代码已经上传到了github上面,开源代码 作为一个电子罗盘模块,我们可以通过I2C从中获取偏航角yaw,相对于六轴陀螺仪的yaw,qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

STM32F4基本定时器使用和原理详解
STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”
2025年#高考 将在近日拉开帷幕,#AI 监考一度冲上热搜。当AI深度融入高考,#时间同步 不再是辅助功能,而是决定AI监考系统成败的“生命线”。 AI亮相2025高考,40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕,江西、…...

Yolov8 目标检测蒸馏学习记录
yolov8系列模型蒸馏基本流程,代码下载:这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中,**知识蒸馏(Knowledge Distillation)**被广泛应用,作为提升模型…...

R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...

基于SpringBoot在线拍卖系统的设计和实现
摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统,主要的模块包括管理员;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

在Mathematica中实现Newton-Raphson迭代的收敛时间算法(一般三次多项式)
考察一般的三次多项式,以r为参数: p[z_, r_] : z^3 (r - 1) z - r; roots[r_] : z /. Solve[p[z, r] 0, z]; 此多项式的根为: 尽管看起来这个多项式是特殊的,其实一般的三次多项式都是可以通过线性变换化为这个形式…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...

android RelativeLayout布局
<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...