进程管理工具

进程管理工具

kill

man 7 signal

1) SIGHUP: 无须关闭进程而让其重读配置文件

kill -1 进程编号

2) SIGINT: 中止正在运行的进程;相当于Ctrl+c

9) SIGKILL: 杀死正在运行的进程

再生进程 kill -9 杀不掉

15) SIGTERM:终止正在运行的进程

kill -15/或不写(默认) +进程编号。正常终止进程 

18) SIGCONT:继续运行

19) SIGSTOP:后台休眠

pidof +指令 可以查询该指令活动进程的编号

blob.png

前后台的切换(fg,bg,Ctrl z)

想要操作在后台运行只需在后面加 &符号(交互式的指令如vim不能有效)

blob.png

jobs 看后台命令的进程代号数字

blob.png

fg 1 关掉后台数字1的进程

blob.png

Ctrl z 将前台进程放到后台休眠

blob.png

jbos

blob.png

bg 1 将后台休眠进程放到后台运行

blob.png

ps aux  查看程序进程编码

kill -18 +进程编号  后台运行

kill -19 +进程编号  后台休眠

kill -9  +进程编号  终止进程

QQ图片20160911175223.png

pkill -t pts/2  关闭指定用户的进程(默认是15指令)

blob.png

blob.png另一个终端的进程停止了

pkill -9 -t pts/2  (强制终止)

blob.png如果使用9强制指令会发现指定的终端连链接都掉了。,

pkill -u zczx 可以删除指定用户身份运行的进程

-SIGNAL

-u uid: effective user,生效者

-U uid: real user,真正发起运行命令者

-t terminal: 与指定终端相关的进程

-l: 显示进程名

-a: 显示完整格式的进程名

-P pid: 显示父进程为此处指定的进程的进程列表

nohup

nohup ping 127.0.0.1 &  可以使进程继续在后台运行,但是已经不能用jobs查看到进程代码数字,所以调不会去前台,只能用kill关闭

screen;COMMAND

还能用screen 回话功能继续调用进程,这个只要一链接回去自动默认调用回前台

blob.png

blob.png

blob.png

顺序执行:f1.sh;f2.sh;f3.sh

并行执行:(f1.sh&);(f2.sh&);(f3.sh&) 同时开多个子进程同时运行各脚本进程

{ f1.sh& f2.sh& f3.sh& }

用ps aux 查看进程编号

用kill 指令终止

nice

nice -n -10 ping 10.1.0.1 指定进程的nice优先级别(-20到20)

blob.png

已经在运行的进程默认是0,也可以不停止调优先级别

ps axo pri 查看后台进程权限

blob.png

renice -n -10 进程编号  

调整优先级别

任务计划

linux任务计划,周期性任务执行

分为一次性和周期性

at 一次性

batch: 系统会自动选择空闲时间运行

cron 周期性

at 一次性

rpm -q at 可以查询at服务是否安装

blob.png

/var/spool/at 有新建的任务会在这里

blob.png

blob.png

/etc/rc.d/atd status 查询服务是否启动

chkconfig –list atd 可以查看服务是否开机启动,看5模式是否启动

blob.png 

chkconfig –level 5 atd on

runlevel 启动模式

(5,6模式的时候使用。)

blob.png

7版本使用:

systemctl status atd 查看服务器是否启动

systemctl start atd 

blob.png

at -V 查看版本

blob.png

at 10:12 指定时间

wall at job is starting 广播

touch /root/at.log

echo "at echo"

用Ctrl D 结束(如果按了Ctrl C 就清空了)

blob.png

如果有echo的标准输出,不会在屏幕上输出,会自动转发成邮件给你

atq 可以查看到有多少个指定任务

blob.png

at -l 效果一样

blob.png

at -d 其实等于直接删除文件 ,/var/spool/at

blob.png

at 9:00 2016-9-10-1 可以指定时间,年月日

wall holiday     

-V 显示版本信息:

-l: 列出指定队列中等待运行的作业;相当于atq

-d: 删除指定的作业;相当于atrm

-c: 查看具体作业任务

-f /path/from/somefile:从指定的文件中读取任务

at 10:30 -f /root/at.sh

at 10:30 < /root/at.sh

at 10:30 <<eof

touch f1

eof

-m:当任务被完成之后,将给用户发送邮件,即使没有标准输出

HH:MM [YYYY-mm-dd] 10:30 2016-10-1

noon, midnight, teatime(4pm) 04pm March 17

tomorrow      10:30 tomorrow

now+#{minutes,hours,days, OR weeks}

now + 5minutes   04pm + 3 days

at任务

vim /etc/at.deny (黑名单)

zczx 只需要加入用户的名字,就可以禁止该用户使用at。

vim /etc/at.allow 白名单(比黑名单优先)

如果设置了白名单,at只能是白名单有名字的用户才能使用了,即使不在黑名单中。默认这个文件是不存在的,需要自己建立。

如果两个文件都删了,除了管理root用户,其他用户一样使用不了。

cron 周期性

crond

systemctl status crond 7版本 查看服务是否启动

blob.png

service crond status 6版本

blob.png

rpm -ql cronie

blob.png

chkconfig –list crond 可以查看服务是否开机启动

blob.png

rpm -ql cronie-anacron 辅助包 用于移动端和家用机

blob.png

系统cron任务:系统维护作业

/etc/crontab

blob.png

用vim 可以增加计划任务

# Example of job definition:

# .—————-minute (0 -59)

# | .————-hour (0 -23)

# | | .———-day of month (1 -31)

# | | | .——-month (1 -12) OR jan,feb,mar,apr…

# | | | | .—-day of week (0 -6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

例如:晚上9点10分运行echo命令;

10 21 * * *centos /bin/echo "Howdy!"

离散值 1,10,20 2,4 1-10,20-28 

1,10,20分钟 2,4小时 1到10,20-28号

*/10 每10分钟一次

@rebootRun  每次重启之后

@yearly 每年

@annually 

@monthly  每个月

@weekly  每星期

@daily 每天

@hourly 每小时

cd /etc/cron.d

cat ohourly 可以查看到格式

blob.png

系统的计划任务:

/etc/crontab

/etc/cron.d/ 配置文件

/etc/cron.hourly/ 脚本

/etc/cron.daily/脚本

/etc/cron.weekly/脚本

/etc/cron.monthly/脚本

systemctl systemd-tmpfiles-setup 7版本实现清除临时文件

/etc/cron.daily/tmpwatch定时清除临时文件。6版本

blob.png

日志:/var/log/cron

可以用cat /var/log/cron 查看日志中的周期指令

blob.png

crontab -e 新建一个周期任务

* * * * * echo zczxcron

blob.png

0 12 * * * wall class over 12点发送广播

blob.png

cd /var/spool/cron/ 保存会文件会在这个目录中

blob.png

通过 crontab 的特殊权限普通用户可以读写。

crontab -r 删除计划任务

所新建的文件名字,就是用户名字命名。

文件名字要和所有者配对,任务才会生效。

blob.png发现连配置文件都一起删除

crontab

-l: 列出所有任务;

blob.png

-e: 编辑任务;

-r: 移除所有任务;

-i:同-r一同使用,以交互式模式移除指定任务

-u user: 仅root可运行,指定用户管理cron任务

/etc/cron.{allow,deny}白名单、黑名单需自己创建

功效与at一样。

一次性作业使用at

重复性作业使用crontab

建立任务   at time   crontab -e

列出任务表 at -l     crontab -l

查看具体任务 at -c jobnumN/A

删除任务   at -d jobnum crontab -r

编辑任务   crontab -e

没有被重定向的输出会被邮寄给用户

根用户能够修改其它用户的作业

对于cron任务来讲,%有特殊用途;如果在命令中要使用%,则需要转义;不过,如果把%放置于单引号中,也可以不用转义

mandb 创建数据库 7版本使用

blob.png

man 5 crontab

blob.png

run-parts DIR可以运行指定目录下所有的可执行文件

anacron 6版本之后都取消了这个服务,让crond服务

系统启动和内核管理

linux 组成

Linux: kernel+rootfs

kernel: 进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能

GNU/linux

内核设计流派:

单内核(monolithic kernel):Linux

把所有功能集成于同一个程序

微内核(micro kernel):Windows, Solaris

每种功能使用一个单独子系统实现

Linux内核特点:

支持模块化:.ko(内核对象)

如:文件系统,硬件驱动,网络协议等

支持内核模块的动态装载和卸载

(模块化)

组成部分:

核心文件:/boot/vmlinuz-VERSION-release

ramdisk:辅助的伪根系统

CentOS 5: /boot/initrd-VERSION-release.img

CentOS6,7: /boot/initramfs-VERSION-release.img

模块文件:/lib/modules/VERSION-release

先查找内核,再启动驱动

CentOS6,7: /boot/initramfs-VERSION-release.img 误删了这个文件可以通过开机进去救援系统

blob.png

chroot /mnt/sysimage 切换回根目录

cd /boot

mkinitrd initramfs-`uname -r`.img `uname -r` 重新生成 (5,6版本使用)

Cento5,6

POST加电自检》MBR引导》GRUB》加载内核

centos6启动流程

1.加载BIOS的硬件信息,获取第一个启动设备。

2.读取第一个启动设备MBR的引导加载程序(grub)的启动信息

3.加载核心操作系统的核心信息,核心开始解压缩,并尝试驱动所有的硬件设备。

4.核型执行init程序并获取运行信息。

5.Init执行/etc/rc.d/rc.sysinit文件。

6.启动核心的外挂模块(/etc/modprobe.conf)。

7.Init执行运行的各个批处理文件(scripts).

8.Init执行/etc/rc.d/rc.local.

9.执行/bin/login程序,等待用户登录。

10.登录之后开始以Shell控制主机。

bootloader: 引导加载器,引导程序

rpm -q grub 5,6版本是0.97

rpm -q grup2 7的版本直接成为2

kernel:

自身初始化:

探测可识别到的所有硬件设备

加载硬件驱动程序(可能借助于ramdisk加载驱动)

以只读方式挂载根文件系统

运行用户空间的第一个应用程序:/sbin/init

系统初始化:

POST –> BootSequence(BIOS) –> Bootloader(MBR) –> kernel(ramdisk) –> rootfs(只读) –> init(systemd)

/etc/.rc.sysinit 

/etc/rc.d/rc.sysinit: 系统初始化脚本

(1) 设置主机名

(2) 设置欢迎信息

(3) 激活udev和selinux

(4) 挂载/etc/fstab文件中定义的文件系统

(5) 检测根文件系统,并以读写方式重新挂载根文件系统

(6) 设置系统时钟

(7) 激活swap设备

(8) 根据/etc/sysctl.conf文件设置内核参数

(9) 激活lvm及software raid设备

(10) 加载额外设备的驱动程序

(11) 清理操作

cd /etc/rc.d

K为头的不运行,S为头的运行。决定服务是否启动。

chkconfig –list 可以查看什么服务在什么模式下是否运行

blob.png

chkconfig atd on 默认开启2,3,4模式

进入 /etc/init.d 下建立脚本

服务脚本

#!/bin/bash

#chkconfig:35 88 22 (3,5模式on 开启S88 关闭K22)

#description:texst service

case $1 in

start)

echo testsrv staring

;;

stop)

echo testsrv stop 

;;

status)

echo testsrv status

;;

*)

echo 'testsrv start|stop|status'

;;

esac

记得写完要用chmod +x 给予执行权限

blob.png

chkconfig –add testsrv 增加服务板块

service testsrv start  服务开启

stop       关闭

blob.png

chkconfig –del testsrv 删除服务板块

blob.png

who -r 可以看现在是什么模式

blob.png

ntsysv

ntsysv –level=2

blob.png

yum -y xinted

service xinted status  服务状态查询

  start   服务开启

vim /etc/xinetd

chkconfig telnet on

非独立服务要xinetd 监听

建立于xineted 的运行

7版本全部服务都默认不启动,当需要一个服务就激活一个服务,这样能节省更多的资源。端口和服务独立开了。旧版本服务和端口是绑定关系。

破解5,6口令

进入按a模式

1 s S 单用户,登陆进去就是root用户

passwd 修改回密码 不过只能在本机使用。

原创文章,作者:swzczx,如若转载,请注明出处:http://www.178linux.com/45547

评论列表(1条)

  • 马哥教育
    马哥教育 2016-09-20 11:06

    文章内容充实,也通过具体操作展示了各个管理命令的效果,赞一个