Linux的进程管理

本文涉及的产品
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用版 2核4GB 50GB
简介: 跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z

01

系统任务管理


跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z

  • & 最经常被用到:这个用在一个命令的最后,可以把这个命令放到后台执行
  • ctrl + z:可以将一个正在前台执行的命令放到后台,并且暂停
  • jobs:查看当前有多少在后台运行的命令
  • fg:将后台中的命令调至前台继续运行



oracle@yaoyuan ~$ sleep 10^Z[1]+  Stopped                 sleep 10oracle@yaoyuan ~$ sleep 9 &[2] 25127oracle@yaoyuan ~$ jobs[1]+  Stopped                 sleep 10[2]-  Running                 sleep 9 &oracle@yaoyuan ~$ ps  PID TTY          TIME CMD24894 pts/0    00:00:00 bash25112 pts/0    00:00:00 sleep25167 pts/0    00:00:00 ps[2]-  Done                    sleep 9oracle@yaoyuan ~$ jobs[1]+  Stopped                 sleep 10oracle@yaoyuan ~$ fgsleep 10

sleep 9在后台执行,不是暂停,而sleep 10暂停了。


02

ps


ps 命令用于显示当前系统中由该用户运行的进程列表

选项 说明
-ef 查看所有进程及其 PID(进程号)、系统时间、命令的详细目录、执行者等。
-aux 除可显示 -ef 所有内容外,还可显示 CPU 及内存占用率、进程状态。
-w 以加宽方式显示,这样可以显示较多的信息。


03

pidof

根据进程名查询进程号




oracle@yaoyuan ~$ pidof mysqld1907oracle@yaoyuan ~$ ps -ef|grep mysqldmysql     1907     1  0 Jul29 ?        00:01:57 /usr/sbin/mysqld


04

kill


而 kill 命令用于输出特定的信号给指定进程号(PID)的进程并根据该信号完成指定的行为,其中可能的信号有进程挂起、进程等待、进程终止等





oracle@yaoyuan ~$    kill -l 1) SIGHUP   2) SIGINT   3) SIGQUIT   4) SIGILL   5) SIGTRAP 6) SIGABRT   7) SIGBUS   8) SIGFPE   9) SIGKILL  10) SIGUSR111) SIGSEGV  12) SIGUSR2  13) SIGPIPE  14) SIGALRM  15) SIGTERM16) SIGSTKFLT  17) SIGCHLD  18) SIGCONT  19) SIGSTOP  20) SIGTSTP21) SIGTTIN  22) SIGTTOU  23) SIGURG  24) SIGXCPU  25) SIGXFSZ26) SIGVTALRM  27) SIGPROF  28) SIGWINCH  29) SIGIO  30) SIGPWR31) SIGSYS  34) SIGRTMIN  35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+338) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+843) SIGRTMIN+9  44) SIGRTMIN+10  45) SIGRTMIN+11  46) SIGRTMIN+12  47) SIGRTMIN+1348) SIGRTMIN+14  49) SIGRTMIN+15  50) SIGRTMAX-14  51) SIGRTMAX-13  52) SIGRTMAX-1253) SIGRTMAX-11  54) SIGRTMAX-10  55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-758) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-263) SIGRTMAX-1  64) SIGRTMAX  oracle@yaoyuan ~$ sleep 100 &[1] 25928oracle@yaoyuan ~$ ps  PID TTY          TIME CMD24894 pts/0    00:00:00 bash25928 pts/0    00:00:00 sleep25941 pts/0    00:00:00 psoracle@yaoyuan ~$ kill 25928oracle@yaoyuan ~$ ps  PID TTY          TIME CMD24894 pts/0    00:00:00 bash25948 pts/0    00:00:00 ps

信号默认为15,使用-9可以强制杀死。


05

nohup


nohup 英文全称 no hang up(不挂起),用于在系统后台不挂断地运行命令,退出终端不会影响程序的运行。

nohup 命令,在默认情况下(非重定向时),会输出一个名叫 nohup.out 的文件到当前目录下,如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。

以下命令在后台执行 root 目录下的 dbaace.sh 脚本:




oracle@yaoyuan ~$ cat > yaoyuan.shlsoracle@yaoyuan ~$ chmod a+x yaoyuan.sh oracle@yaoyuan ~$ nohup yaoyuan.shnohup: ignoring input and appending output to ‘nohup.out’nohup: failed to run command ‘yaoyuan.sh’: No such file or directoryoracle@yaoyuan ~$ nohup ./yaoyuan.shnohup: ignoring input and appending output to ‘nohup.out’oracle@yaoyuan ~$ cat nohup.out aaa.sqlawrdiff_1_253_1_270.html...


06

at


计划任务服务程序 把周期性、规律性的工作交给系统自动完成。计划任务分为一次性计划任务与长期性计划任务。一次性计划任务只执行一次,一般用于满足临时的工作需求。我们可以用at命令实现这种功能,只需要写成“at 时间”的形式就可以。


oracle@yaoyuan ~$ dateSun Jul 31 15:16:55 CST 2022oracle@yaoyuan ~$ at 15:18at> touch file_aat> <EOT>job 1 at Sun Jul 31 15:18:00 2022oracle@yaoyuan ~$ dateSun Jul 31 15:18:01 CST 2022oracle@yaoyuan ~$ ll file_a-rw-r--r--. 1 oracle oinstall 0 Jul 31 15:18 file_a

<EOT>是输入Ctrl+d结束。

07

crontab


我们希望 Linux 系统能够周期性地、有规律地执行某些具体的任务,那么Linux 系统中默认启用的 crond 服务简直再适合不过了 创建、编辑计划任务的命令为“crontab -e”,查看当前计划任务的命令为“crontab -l”,删除某条计划任务的命令为“crontab -r”。另外,如果您是以管理员的身份登录的系统,还可以在crontab 命令中加上-u 参数来编辑他人的计划任务。

格式如下:

* * * * * command

分  时  日  月  周  命令 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时1~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6(0表示星期天) 第6列要运行的命令

例子:

每晚的21:30重启apache:

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

每月1、10、22日的4点45分执行:

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

每周日早上2点执行数据库备份脚本:

0 2 * * 7 backup_database.sh

常用于数据库备份

开机自动执行

# crontab -e
//进入编辑,输入如下行
@reboot touch /home/oracle/hello.res


检查使用crontab -l

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
Linux
Linux源码阅读笔记13-进程通信组件中
Linux源码阅读笔记13-进程通信组件中
|
1天前
|
消息中间件 安全 Java
Linux源码阅读笔记13-进程通信组件上
Linux源码阅读笔记13-进程通信组件上
|
28天前
|
运维 关系型数据库 MySQL
掌握taskset:优化你的Linux进程,提升系统性能
在多核处理器成为现代计算标准的今天,运维人员和性能调优人员面临着如何有效利用这些处理能力的挑战。优化进程运行的位置不仅可以提高性能,还能更好地管理和分配系统资源。 其中,taskset命令是一个强大的工具,它允许管理员将进程绑定到特定的CPU核心,减少上下文切换的开销,从而提升整体效率。
掌握taskset:优化你的Linux进程,提升系统性能
|
23天前
|
弹性计算 Linux 区块链
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
30 4
Linux系统CPU异常占用(minerd 、tplink等挖矿进程)
|
1天前
|
Linux
Linux源码阅读笔记10-进程NICE案例分析2
Linux源码阅读笔记10-进程NICE案例分析2
|
1天前
|
Linux 数据安全/隐私保护
Linux守护进程
Linux守护进程
|
1天前
|
Linux
Linux源码阅读笔记09-进程NICE案例分析1
Linux源码阅读笔记09-进程NICE案例分析1
|
1天前
|
存储 Linux API
Linux源码阅读笔记08-进程调度API系统调用案例分析
Linux源码阅读笔记08-进程调度API系统调用案例分析
|
1天前
|
Linux API
Linux源码阅读笔记07-进程管理4大常用API函数
Linux源码阅读笔记07-进程管理4大常用API函数
|
5天前
|
Linux 调度
Linux源码阅读笔记05-进程优先级与调度策略-实战分析
Linux源码阅读笔记05-进程优先级与调度策略-实战分析