Linux的进程管理

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 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
相关文章
|
1月前
|
资源调度 Linux 调度
Linux c/c++之进程基础
这篇文章主要介绍了Linux下C/C++进程的基本概念、组成、模式、运行和状态,以及如何使用系统调用创建和管理进程。
34 0
|
3月前
|
网络协议 Linux
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
Linux查看端口监听情况,以及Linux查看某个端口对应的进程号和程序
633 2
|
3月前
|
Linux Python
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
linux上根据运行程序的进程号,查看程序所在的绝对路径。linux查看进程启动的时间
66 2
|
13天前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
42 4
linux进程管理万字详解!!!
|
3天前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
38 8
|
12天前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
44 4
|
13天前
|
缓存 负载均衡 算法
Linux内核中的进程调度算法解析####
本文深入探讨了Linux操作系统核心组件之一——进程调度器,着重分析了其采用的CFS(完全公平调度器)算法。不同于传统摘要对研究背景、方法、结果和结论的概述,本文摘要将直接揭示CFS算法的核心优势及其在现代多核处理器环境下如何实现高效、公平的资源分配,同时简要提及该算法如何优化系统响应时间和吞吐量,为读者快速构建对Linux进程调度机制的认知框架。 ####
|
15天前
|
消息中间件 存储 Linux
|
21天前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
22 1
|
1月前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
【10月更文挑战第9天】本文将深入浅出地介绍Linux系统中的进程管理机制,包括进程的概念、状态、调度以及如何在Linux环境下进行进程控制。我们将通过直观的语言和生动的比喻,让读者轻松掌握这一核心概念。文章不仅适合初学者构建基础,也能帮助有经验的用户加深对进程管理的理解。
20 1