Linux的进程管理

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 跟系统任务相关的几个命令: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
相关文章
|
16天前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
43 1
|
2月前
|
资源调度 Linux 调度
Linux c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
48 0
|
5天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
44 13
|
12天前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
19天前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
1月前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
137 4
linux进程管理万字详解!!!
|
25天前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
1月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
77 8
|
1月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
68 1
|
1月前
|
Linux
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?