16.3.2 【Linux】程序的管理

程序之间是可以互相控制的。举例来说,你可以关闭、重新启动服务器软件,服务器软件本身是个程序, 你既然可以让她关闭或启动,当然就是可以控制该程序。

使用kill-l或者是man 7 signal可以查询到有多少个signal。主要的讯号代号与名称对应及内容是:

kill -signal PID

kill 可以帮我们将这个 signal 传送给某个工作 (%jobnumber) 或者是某个 PID (直接输入数字)。 要再次强调的是: kill 后面直接加数字与加上 %number 的情况是不同的!因为工作控制中有 1 号工作,但是 PID 1 号则是专指" systemd "这支程序。

例题:以 ps 找出 rsyslogd 这个程序的 PID 后,再使用 kill 传送讯息,使得 rsyslogd 可以重新读取配置文件。答:由于需要重新读取配置文件,因此 signal 是 1 号。至于找出 rsyslogd的 PID 可以是这样做:

sql 复制代码
ps aux | grep 'rsyslogd' | grep -v 'grep'| awk '{print $2}'

接下来则是实际使用 kill -1 PID,因此,整串指令会是这样:

sql 复制代码
kill -SIGHUP $(ps aux | grep 'rsyslogd' | grep -v 'grep'| awk '{print $2}')

如果要确认有没有重新启动 syslog ,可以参考登录文件的内容,使用如下指令查阅:

sql 复制代码
tail -5 /var/log/messages

如果你有看到类似"Aug 5 01:25:02 study rsyslogd: [origin software="rsyslogd"swVersion="7.4.7" x-pid="742" x-info="The rocket-fast Syslog Server - rsyslog"] rsyslogd was HUPed"之类的字样,就是表示 rsyslogd 在 8/5 有重新启动 (restart) 过了。

如果未来你想要将某个莫名其妙的登陆者的连线删除的话,就可以通过使用 pstree -p 找到相关程序, 然后再以 kill -9 将该程序删除,该条连线就会被踢掉了。

killall -signal 指令名称

由于 kill 后面必须要加上 PID (或者是 job number),所以,通常 kill 都会配合 ps, pstree 等指令,因为我们必须要找到相对应的那个程序的 ID。举例说,可以用killall直接将rsyslogd这个程序给予一个SIGHUP 的讯号。

总之,要删除某个程序,我们可以使用 PID 或者是启动该程序的指令名称,用killall可以删除某个服务。 因为他可以将系统当中所有以某个指令名称启动的程序全部删除。

16.3.3 关于程序的执行顺序

Linux 是多用户多任务的环境,系统同时间有非常多的程序在运行中,只是绝大部分的程序都在休眠 (sleeping) 状态而已。

CPU 调度指的是每支程序被 CPU 运行的演算规则, 而例行性工作调度则是将某支程序安排在某个时间再交由系统执行。 CPU调度与操作系统较具有相关性!

Priority 与 Nice 值

CPU 一秒钟可以运行多达数 G 的微指令次数,通过核心的 CPU 调度可以让各程序被 CPU 所切换运行, 因此每个程序在一秒钟内或多或少都会被 CPU 执行部分的指令码。如果程序都是集中在一个伫列中等待 CPU 的运行, 而不具有优先顺序之分,也就是像我们去游乐场玩热门游戏需要排队一样,每个人都是照顺序来。

图16.3.1、并没有优先顺序的程序伫列示意图

相关推荐
梦想很大很大19 小时前
拒绝“盲猜式”调优:在 Go Gin 项目中落地 OpenTelemetry 链路追踪
运维·后端·go
Sinclair20 小时前
内网服务器离线安装 Nginx+PHP+MySQL 的方法
运维
叶落阁主21 小时前
Tailscale 完全指南:从入门到私有 DERP 部署
运维·安全·远程工作
0xDevNull1 天前
Linux切换JDK版本详细教程
linux
进击的丸子1 天前
虹软人脸服务器版SDK(Linux/ARM Pro)多线程调用及性能优化
linux·数据库·后端
茶杯梦轩1 天前
从零起步学习RabbitMQ || 第二章:RabbitMQ 深入理解概念 Producer、Consumer、Exchange、Queue 与企业实战案例
服务器·后端·消息队列
甲鱼9292 天前
MySQL 实战手记:日志管理与主从复制搭建全指南
运维
Johny_Zhao3 天前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
YuMiao3 天前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
chlk1234 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统