热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux任务及进程管理

文章目录crontabps命令killtop命令重要信号at一次性计划任务精确到分钟atq查看atrm删除at时间Cd编辑结束at-cnumber查看详细at-f需要执行


文章目录

        • crontab
        • ps命令
        • kill
        • top 命令
        • 重要信号

at 一次性计划任务 精确到分钟
atq 查看
atrm 删除
at 时间 C+d编辑结束
at -c number 查看详细
at -f 需要执行的脚本
-q 加入队列
echo "date > ~/qxl/a.txt" | at now +3min
at 5:30pm /sbin/shutdown -h now (命令使用绝对路径)
echo "tom"
其任务存放在/var/spool/at/下
/etc/at.allow
/etc/at.deny
如果两个文件都不在,则只有root才可以使用at命令
batch 会考虑系统负载,功能同atjobs 查看 -l 有PID信息作业号 不同于进程号+: 命令将默认操作的作业-: 命令将第二个默信操作的作业bg 让后台停止的作业继续运行 (有交互的进程不能放后台停止并恢复的)fg 将后台的作业调回前台ctrl+z 把正在前台运行的作业送往后台杀死作业kill %2 #终止作业

crontab

30 21 * */2 1,3-5 cp /home/tom/data /tmp/tmp.bak
#每隔两个月的周一和周三到周五的晚的21:30备份data文件至tmp文件夹下
min hour day mouth week command
* #代表任何时刻
, #分隔时刻
- #时间段内
/n #n代表数字,每隔n单位,*/2 即每隔两个执行一次crontab -e #edit
-l #list列出crontab任务
-r #删除
-u #使用root来编辑他人的计划任务,其任务存放在/var/spool/cron/下

service cron start   重启定时运行程序crontab
pidof 查找相关进程 ID

[root@tom-virtual-machine test]#pidof bash
2784 2772 2755

ps命令

process state


  • system U 风格 命令加-

[tom@ton ~]$ps -aPID TTY TIME CMD6669 pts/0 00:00:00 ps

  • BSD 风格

[tom@ton ~]$ps aPID TTY STAT TIME COMMAND1584 tty1 Ss+ 0:00 /sbin/mingetty /dev/tty11586 tty2 Ss+ 0:00 /sbin/mingetty /dev/tty21588 tty3 Ss+ 0:00 /sbin/mingetty /dev/tty31590 tty4 Ss+ 0:00 /sbin/mingetty /dev/tty41592 tty5 Ss+ 0:00 /sbin/mingetty /dev/tty51598 tty6 Ss+ 0:00 /sbin/mingetty /dev/tty66563 pts/0 Ss 0:00 -bash6668 pts/0 R+ 0:00 ps a

S sleep T stop R running D deep sleep Z zombie < 高优先级 N 低优先级

  • D&#xff1a;不可中断睡眠
  • R&#xff1a;运行或就绪
  • S&#xff1a;可中断的睡眠
  • T&#xff1a;停止
  • Z&#xff1a;僵死
  • <&#xff1a;高优先级进程
  • N&#xff1a;低优先级进行
  • &#43;&#xff1a;前台进程组的进程
  • l&#xff1a;多线程进程
  • s&#xff1a;会话进程

[tom&#64;ton ~]$ps auU root
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.2 2900 1144 ? Ss Apr14 0:01 /sbin/init
root 2 0.0 0.0 0 0 ? S Apr14 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S Apr14 0:00 [migration/0]
...

TIME 运行时长&#xff0c;为真正占用cpu时间
CMMMAND 中[ ]内容为内核线程

ps uU tom 查看用户tom的相关进程 ps -un $(pgrep tom)ps -o pid,pcpu,nice $(pgrep tom)
-a 所有与终端有关的进程
-x 所有与终端无关的进程
-u 对应用户
ps -elF #输入详细信息
-ef
-eF

ps -eopid,tt,user,fname,tmout,f,wchan #定制输出格式 [tom&#64;ton ~]$ ps -eopid,tt,user,fname,tmout,f,wchanPID TT USER COMMAND TMOUT F WCHAN1 ? root init - 4 ?2 ? root kthreadd - 1 ?3 ? root migratio - 1 ?4 ? root ksoftirq - 1 ?

NICE值 -20至19 一共40个级别
PRI 进程优先级


kill

xkill 图形界面的关闭命令killall -9 httpd 关闭进程 pkill -9 httpd 同上pkill -t -9 pts/1 强制杀死从pts/1上登陆的进程 skill -9 pts/2 等同于上skill -9 tom 杀死用户tom的进程,等同于pkill -u user kill 1 重启nice renice (-20,19)nice --5 myprogram -5 renice -5 PIDnohup 使进程在退出登陆后仍然进行nohubp program & 可用于需要挂机处理的备份大数据的时候 pkill -kill -t pts/0 #终端tty0踢除

kill -l 列出可用信号 trap -lstty -a 可以列出中断信号与键盘的对应 trap "" 2 屏蔽ctrl&#43;c信号trap ":" 2 恢复ctrl&#43;c信号trap "echo -n &#39;you are typing ctrl&#43;c&#39;" 2 trap 脚本应用function trapper() {trap &#39;:&#39; INT EXIT TSTP TERM HUP}while :do trapperclearcat << MENU1)2)MENUread -p "pls select:" numcase "$num" in1)2)esacdonefuser命令 用于报告进程使用的文件和网络套接字#fuser -v /home/fuser -km /文件或设备lsof -p pid 列出对应pid进程打开的文件
lsof abc.txt 显示开启文件abc.txt的进程
lsof -c abc 显示abc进程现在打开的文件
lsof -c -p 1234 列出进程号为1234的进程所打开的文件
lsof -g gid 显示归属gid的进程情况
lsof &#43;d /usr/local/ 显示目录下被进程开启的文件
lsof &#43;D /usr/local/ 同上&#xff0c;但是会搜索目录下的目录&#xff0c;时间较长
lsof -d 4 显示使用fd为4的进程
lsof -i 用以显示符合条件的进程情况
lsof -i[46] [protocol][&#64;hostname|hostaddr][:service|port] 46 --> IPv4 or IPv6 protocol --> TCP or UDP hostname --> Internet host name hostaddr --> IPv4地址 service --> /etc/service中的 service name (可以不止一个) port --> 端口号 (可以不止一个)stty -a 可以列出中断信号与键盘的对应
getenforce 查看selinux状态(sestatus )
setenforce 0 关闭 1 开启
/etc/selinux/config 配置文件selinux&#61; ENFORCEING 强制开启PERMISSIVE 宽容级别DISABLED 关闭 ntsysv 图形化应用配置界面
图形化设置界面
system-config-* 类似system-config-network添加系统服务
cp /*/mysql.server /etc/init.d/mysqld
或者连接过去
chkconfig --add mysqld
chkconfig --list mysqld 加入chkconfig基于xined的服务不占用内存&#xff0c;但是响应时间会慢点
nice -n NI COMMAND #在启动时指定nice值
renice NI PID #调整已启动的进程的Ni值

top 命令

top - 19:27:07 up 3 days, 14:15, 1 user, load average: 0.01, 0.00, 0.00#平均队列长度 ^1min,5min,15min
Tasks: 101 total, 1 running, 100 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 508096k total, 499484k used, 8612k free, 53216k buffers
Swap: 1048572k total, 98628k used, 949944k free, 18420k cached

top d 指定刷新间隔 r 改变优先级 < > 用来翻页

  • -H 线程模式&#xff0c;显示各个线程数&#xff0c;也可以在交互模式下h键

top z 彩色显示

  • us 用户程序占用百分比
  • sy 系统
  • ni 系统中nice占用百分比
  • id 空闲百分比
  • wa 等待I/O操作进行的百分比
  • hi 等待硬件中断进程百分比
  • si 表示等待软件中断
  • st 虚拟机管理程序“偷”走的时间
  • nice unix进程的优先级的数值&#xff0c;越大优先级越小

htop 显示
在这里插入图片描述

VIRT&#xff1a;Virtual memory usage 虚拟内存
RES&#xff1a;Resident memory usage 常驻内存
SHR&#xff1a;Shared memory 共享内存
S : Process status 进程状态。D&#61;不可中断的睡眠状态R&#61;运行S&#61;睡眠T&#61;跟踪/停止Z&#61;僵尸进程


exec 用启动的子进程来替换父进程


vmstat系统状态查看

[root&#64;tom-virtual-machine test]#vmstat 2 5 #间隔2s,显示5次
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----r b swpd free buff cache si so bi bo in cs us sy id wa st1 0 0 1487148 72052 321432 0 0 7 2 10 10 0 0 100 0 00 0 0 1487124 72052 321432 0 0 0 0 11 11 0 0 100 0 00 0 0 1487124 72052 321432 0 0 0 0 11 8 0 0 100 0 00 0 0 1487124 72052 321432 0 0 0 0 10 8 0 0 100 0 00 0 0 1487124 72052 321432 0 0 0 0 10 8 0 0 100 0 0

重要信号

1&#xff1a;SIGHUP 让一个进程不用重启&#xff0c;就可以读配置文件&#xff0c;使新配置文件生效。
2&#xff1a;SIGINI c&#43;c 中断一个进程
9&#xff1a;SIGKILL 杀死一个进程 &#xff0c;普通终止
15&#xff1a;SIGTERM 终止一个进程 &#xff0c;强制终止
kill -SIGKILL 简写成 kill -KILL
或者直接 信号号码 kill -1
kill all COMMAND 关闭进程树


推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 本文介绍了一种轻巧方便的工具——集算器,通过使用集算器可以将文本日志变成结构化数据,然后可以使用SQL式查询。集算器利用集算语言的优点,将日志内容结构化为数据表结构,SPL支持直接对结构化的文件进行SQL查询,不再需要安装配置第三方数据库软件。本文还详细介绍了具体的实施过程。 ... [详细]
  • Commit1ced2a7433ea8937a1b260ea65d708f32ca7c95eintroduceda+Clonetraitboundtom ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 成功安装Sabayon Linux在thinkpad X60上的经验分享
    本文分享了作者在国庆期间在thinkpad X60上成功安装Sabayon Linux的经验。通过修改CHOST和执行emerge命令,作者顺利完成了安装过程。Sabayon Linux是一个基于Gentoo Linux的发行版,可以将电脑快速转变为一个功能强大的系统。除了作为一个live DVD使用外,Sabayon Linux还可以被安装在硬盘上,方便用户使用。 ... [详细]
  • 本文讨论了在iOS平台中的Metal框架中,对于if语句中的判断条件的限制和处理方式。作者提到了在Metal shader中,判断条件不能写得太长太复杂,否则可能导致程序停留或没有响应。作者还分享了自己的经验,建议在CPU端进行处理,以避免出现问题。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 深入理解Kafka服务端请求队列中请求的处理
    本文深入分析了Kafka服务端请求队列中请求的处理过程,详细介绍了请求的封装和放入请求队列的过程,以及处理请求的线程池的创建和容量设置。通过场景分析、图示说明和源码分析,帮助读者更好地理解Kafka服务端的工作原理。 ... [详细]
  • MATLAB函数重名问题解决方法及数据导入导出操作详解
    本文介绍了解决MATLAB函数重名的方法,并详细讲解了数据导入和导出的操作。包括使用菜单导入数据、在工作区直接新建变量、粘贴数据到.m文件或.txt文件并用load命令调用、使用save命令导出数据等方法。同时还介绍了使用dlmread函数调用数据的方法。通过本文的内容,读者可以更好地处理MATLAB中的函数重名问题,并掌握数据导入导出的各种操作。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • Spring Batch中多线程配置及实现例子
    本文介绍了在Spring Batch中开启多线程的配置方法,包括设置线程数目和使用线程池。通过一个示例演示了如何实现多线程从数据库读取数据并输出。同时提到了在多线程情况下需要考虑Reader的线程安全问题,并提供了解决方法。 ... [详细]
  • 使用C++编写程序实现增加或删除桌面的右键列表项
    本文介绍了使用C++编写程序实现增加或删除桌面的右键列表项的方法。首先通过操作注册表来实现增加或删除右键列表项的目的,然后使用管理注册表的函数来编写程序。文章详细介绍了使用的五种函数:RegCreateKey、RegSetValueEx、RegOpenKeyEx、RegDeleteKey和RegCloseKey,并给出了增加一项的函数写法。通过本文的方法,可以方便地自定义桌面的右键列表项。 ... [详细]
author-avatar
林志群晴梦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有