每天学五分钟 Liunx 0011 | 服务篇:进程
1. 进程
[root@test]$ cat test.cpp
#include <stdio.h>
#include <unistd.h> int main(void)
{
int i = 0;
for(i==0;i<100;i++)
{
sleep(2);
printf("Hello World\n");
}
} [root@test]$ gcc test.cpp -o test.out
[root@test]$ ./test.out &
[1] 35166
[root@test]$ Hello World
Hello World
^C
[root@test]$ Hello World
ps Hello World
-lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 34824 34817 0 80 0 - 28750 do_wai 22:49 pts/15 00:00:00 -bash
0 S root 35166 34824 0 80 0 - 1056 hrtime 22:51 pts/15 00:00:00 ./test.out
0 R root 35174 34824 0 80 0 - 38356 - 22:51 pts/15 00:00:00 ps -lf
[root@test]$ Hello World
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 34824 34817 0 80 0 - 28750 do_wai 22:49 pts/15 00:00:00 -bash
0 R root 38815 34824 0 80 0 - 38356 - 23:30 pts/15 00:00:00 ps -lf
[root@test]$ bash
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 34824 34817 0 80 0 - 28750 do_wai 22:49 pts/15 00:00:00 -bash
4 S root 38838 34824 0 80 0 - 28715 do_wai 23:30 pts/15 00:00:00 bash
0 R root 38882 38838 0 80 0 - 38356 - 23:30 pts/15 00:00:00 ps -lf
[root@test]$ exit
exit
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 34824 34817 0 80 0 - 28750 do_wai 22:49 pts/15 00:00:00 -bash
0 R root 38900 34824 0 80 0 - 38356 - 23:30 pts/15 00:00:00 ps -lf
[root@test]$ ./test.out 1> std.out 2> std.err &
[1] 41371
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 34824 34817 0 80 0 - 28750 do_wai Apr21 pts/15 00:00:00 -bash
0 S root 41371 34824 0 80 0 - 1056 hrtime 00:00 pts/15 00:00:00 ./test.out
0 R root 41379 34824 0 80 0 - 38356 - 00:00 pts/15 00:00:00 ps -lf
[root@test]$ cat std.out
[root@test]$
[root@test]$ cat test.cpp
#include <stdio.h>
#include <unistd.h> int main(void)
{
int i = 0;
for(i==0;i<10;i++)
{
sleep(2);
printf("Hello World\n");
}
}
[root@test]$ gcc test.cpp -o test.out
[root@test]$ cat std.out
[root@test]$ ./test.out 1> std.out 2> std.err &
[1] 41775
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 34824 34817 0 80 0 - 28750 do_wai Apr21 pts/15 00:00:00 -bash
0 S root 41775 34824 0 80 0 - 1056 hrtime 00:04 pts/15 00:00:00 ./test.out
0 R root 41779 34824 0 80 0 - 38356 - 00:04 pts/15 00:00:00 ps -lf
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 34824 34817 0 80 0 - 28750 do_wai Apr21 pts/15 00:00:00 -bash
0 R root 41870 34824 0 80 0 - 38356 - 00:05 pts/15 00:00:00 ps -lf
[1]+ Done ./test.out > std.out 2> std.err
[root@test]$ cat std.out
Hello World
Hello World
Hello World
...
[root@test]$
[root@test:/home/robot]
# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.4 0.0 171620 11604 ? Ss 14:16 0:26 /usr/lib/systemd/systemd --switched-root --system --deserialize 17
systemd+ 591 0.0 0.0 19152 6400 ? Ss 14:17 0:00 /usr/lib/systemd/systemd-networkd
avahi 761 0.0 0.0 9656 6244 ? Ss 14:17 0:04 avahi-daemon: running [test
root 766 0.0 0.0 6028 2152 ttyS0 Ss+ 14:17 0:00 /sbin/agetty -o -p -- \u --keep-baud 115200,38400,9600 ttyS0 vt220
root 767 0.0 0.0 6388 1604 tty1 Ss+ 14:17 0:00 /sbin/agetty -o -p -- \u --noclear tty1 linux
root 777 0.0 0.0 614464 18100 ? Ssl 14:17 0:04 python3 -u /opt/nokia/libexec/StorageUtils/script/lsa/local_storage_agent.py
avahi 778 0.0 0.0 8944 432 ? S 14:17 0:00 avahi-daemon: chroot helper
_test+ 779 0.0 0.0 164384 5784 ? Ssl 14:17 0:01 /opt/nokia/bin/eventdaemon --global
root 784 0.0 0.0 0 0 ? Z 14:17 0:00 [cat] <defunct>
root 785 0.0 0.0 7672 1196 ? S 14:17 0:00 avahi-publish -a test.local
_test+ 787 0.0 0.0 26736 16288 ? Ss 14:17 0:00 /opt/nokia/test-acl/bin/ipsetmanager
... [root@test:/home/robot]
# ps -lA
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 80 0 - 42905 SyS_ep ? 00:00:26 systemd
0 S 0 531 525 0 80 0 - 1455 hrtime ? 00:00:00 schedmon
4 S 0 534 1 0 80 0 - 1879 hrtime ? 00:00:00 hypertracerolcd
4 S 0 550 1 0 80 0 - 205661 core_s ? 00:00:15 python3
4 S 192 591 1 0 80 0 - 4788 SyS_ep ? 00:00:00 systemd-network
...
[root@test]$ pstree -p
systemd(1)─┬─abrt-dbus(45043)─┬─{abrt-dbus}(45044)
│ └─{abrt-dbus}(45046)
├─agetty(2037)
├─agetty(2039)
├─atd(1989)
├─auditd(604)─┬─audispd(19274)─┬─sedispatch(19275)
│ │ └─{audispd}(19276)
│ └─{auditd}(605)
├─automount(2029)─┬─{automount}(2030)
│ ├─{automount}(2031)
│ └─{automount}(2056)
...
[root@test]$ top -H
top - 20:49:51 up 264 days, 3:07, 14 users, load average: 0.13, 0.08, 0.02
Threads: 567 total, 1 running, 565 sleeping, 0 stopped, 1 zombie
%Cpu(s): 0.2 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 37077464 total, 12919928 free, 2649664 used, 21507872 buff/cache
KiB Swap: 1020 total, 0 free, 1020 used. 33678848 avail Mem PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
44644 root 20 0 12.7g 335660 21284 S 0.7 0.9 0:04.60 java
43794 root 20 0 12.7g 323332 21332 S 0.7 0.9 0:06.44 java
1959 fluentd 20 0 1382452 28436 4896 S 0.3 0.1 42:04.92 fluentd
2. 工作管理
[root@test test]# vi log.txt [1]+ Stopped vi log.txt
[root@test test]# ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
0 S root 107543 107542 0 80 0 - 6374 - 15:58 pts/0 00:00:00 -bash
0 T root 108848 107543 0 80 0 - 9126 - 15:58 pts/0 00:00:00 vi log.txt
0 R root 109559 107543 0 80 0 - 14894 - 15:58 pts/0 00:00:00 ps -lf
[root@test test]#
[root@test test]# jobs
[1]+ Stopped vi log.txt
[root@test test]# fg %1
vi log.txt [root@test test]# jobs
[1]- Stopped vi log.txt
[2]+ Stopped vi abc
[root@test test]# fg
vi abc
[root@test]$ ./test.out
Hello World
^Z
[1]+ Stopped ./test.out
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 49612 49605 0 80 0 - 28750 do_wai 00:13 pts/15 00:00:00 -bash
0 T root 49854 49612 0 80 0 - 1056 do_sig 00:14 pts/15 00:00:00 ./test.out
0 R root 49880 49612 0 80 0 - 38356 - 00:14 pts/15 00:00:00 ps -lf
[root@test]$ bg %1
[1]+ ./test.out &
Hello World
[root@test]$ Hello World
Hello World
^C
[root@test]$ Hello World
Hello World
Hello World
[root@test]$ kill -l
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAX
# kill -9 %n
[root@test]$ ./test.out
Hello World
Hello World
^Z
[1]+ Stopped ./test.out
[root@test]$ kill -9 %1
[1]+ Killed ./test.out # kill -9 PID
[root@test]$ ./test.out
Hello World
^Z
[1]+ Stopped ./test.out
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 49612 49605 0 80 0 - 28750 do_wai 00:13 pts/15 00:00:00 -bash
0 T root 50944 49612 0 80 0 - 1056 do_sig 00:28 pts/15 00:00:00 ./test.out
0 R root 50950 49612 0 80 0 - 38356 - 00:28 pts/15 00:00:00 ps -lf
[root@test]$ bg %1
[1]+ ./test.out &
Hello World
[root@test]$ Hello World
Hello World
[1]+ Killed ./test.out
[root@tu-qiaolin-683ci-1 ~]$ kill -9 50944 # exec at another tty
[root@test]$ cat test.cpp
#include <stdio.h>
#include <unistd.h> int main(void)
{
int i = 0;
for(i==0;i<20;i++)
{
sleep(2);
printf("Hello World\n");
}
}
[root@test]$ gcc test.cpp -o test.out
[root@test]$ nohup ./test.out &
[1] 50772
[root@test]$ nohup: ignoring input and appending output to ‘nohup.out’
[root@test]$ ps -lf
F S UID PID PPID C PRI NI ADDR SZ WCHAN STIME TTY TIME CMD
4 S root 45024 45018 0 80 0 - 28752 do_wai 20:39 pts/15 00:00:00 -bash
0 S root 50772 45024 0 80 0 - 1056 hrtime 21:41 pts/15 00:00:00 ./test.out
0 R root 50777 45024 0 80 0 - 38356 - 21:41 pts/15 00:00:00 ps -lf
[root@test]$ exit
logout
───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Session stopped Last login: Thu Apr 23 23:48:09 2020 from 10.140.119.177
[root@tu-qiaolin-683ci-1 ~]$ ps -lA | grep 50772
0 S 0 50772 1 0 80 0 - 1056 hrtime ? 00:00:00 test.out
[root@tu-qiaolin-683ci-1 ~]$ cat test/nohup.out
Hello World
Hello World
Hello World
...
[root@tu-qiaolin-683ci-1 ~]$
每天学五分钟 Liunx 0011 | 服务篇:进程的更多相关文章
- 五分钟学Java:如何才能学好Java Web里这么多的技术
原创声明 本文作者:黄小斜 转载请务必在文章开头注明出处和作者. 系列文章介绍 本文是<五分钟学Java>系列文章的一篇 本系列文章主要围绕Java程序员必须掌握的核心技能,结合我个人三年 ...
- 如何从40亿整数中找到不存在的一个 webservice Asp.Net Core 轻松学-10分钟使用EFCore连接MSSQL数据库 WPF实战案例-打印 RabbitMQ与.net core(五) topic类型 与 headers类型 的Exchange
如何从40亿整数中找到不存在的一个 前言 给定一个最多包含40亿个随机排列的32位的顺序整数的顺序文件,找出一个不在文件中的32位整数.(在文件中至少确实一个这样的数-为什么?).在具有足够内存的情况 ...
- 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画
原文:零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形动画 零元学Expression Blend 4 - Chapter 42 五分钟快速完成扇形变圆形 ...
- 五分钟给你的 gRPC服务 加上 HTTP 接口
gRPC 服务要加 HTTP 接口? go-zero 给大家带来极简的 RESTful 和 gRPC 服务开发体验的同时,社区又给我们提出了新的期望: 我想只写一次代码 既要 gRPC 接口 也要 H ...
- [分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例)
[分享] 史上最简单的封装教程,五分钟学会封装系统(以封装Windows 7为例) 踏雁寻花 发表于 2015-8-23 23:31:28 https://www.itsk.com/thread-35 ...
- (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
. . . . . 目录 (一) 一起学 Unix 环境高级编程 (APUE) 之 标准IO (二) 一起学 Unix 环境高级编程 (APUE) 之 文件 IO (三) 一起学 Unix 环境高级编 ...
- 《sed的流艺术之一》-linux命令五分钟系列之二十一
本原创文章属于<Linux大棚>博客,博客地址为http://roclinux.cn.文章作者为rocrocket. 为了防止某些网站的恶性转载,特在每篇文章前加入此信息,还望读者体谅. ...
- GC算法精解(五分钟让你彻底明白标记/清除算法)
GC算法精解(五分钟让你彻底明白标记/清除算法) 相信不少猿友看到标题就认为LZ是标题党了,不过既然您已经被LZ忽悠进来了,那就好好的享受一顿算法大餐吧.不过LZ丑话说前面哦,这篇文章应该能让各位彻底 ...
- zookeeper-架构设计与角色分工-《每日五分钟搞定大数据》
本篇文章阅读时间5分钟左右 点击看<每日五分钟搞定大数据>完整思维导图 zookeeper作为一个分布式协调系统,很多组件都会依赖它,那么此时它的可用性就非常重要了,那么保证可用性的同 ...
- zookeeper核心-zab协议-《每日五分钟搞定大数据》
上篇文章<paxos与一致性>说到zab是在paxos的基础上做了重要的改造,解决了一系列的问题,这一篇我们就来说下这个zab. zab协议的全称是ZooKeeper Atomic Bro ...
随机推荐
- 使用vLLM和ChatGLM3-6b批量推理
当数据量大的时候,比如百万级别,使用 ChatGLM3-6b 推理的速度是很慢的.发现使用 vLLM 和 ChatGLM3-6b 批量推理极大的提高了推理效率.本文主要通过一个简单的例子进行实践. 1 ...
- 【李南江】从零玩转TypeScript
前言 老套路肯定是 需要知道TS是干啥用的啦. 1.什么是TypeScript(TS)? TypeScript简称TS TS和JS之间的关系其实就是Less/Sass和CSS之间的关系 就像Less/ ...
- Volcano 原理、源码分析(二)
0. 总结前置 1. 概述 2. 寻找调度器中的 PodGroup 2.1 从 PodGroup 到 JobInfo 的封装 2.2 从 Pod 到 TaskInfo 的封装 3. 控制器中 PodG ...
- Linux驱动开发笔记(六):用户层与内核层进行数据传递的原理和Demo
前言 驱动作为桥梁,用户层调用预定义名称的系统函数与系统内核交互,而用户层与系统层不能直接进行数据传递,进行本篇主要就是理解清楚驱动如何让用户编程来实现与内核的数据交互传递. 温故知新 设备节 ...
- Python——第四章:闭包(Closure)、装饰器(Decorators)
闭包: 本质, 内层函数对外层函数的局部变量的使用. 此时内层函数被称为闭包函数 1. 可以让一个变量常驻与内存,可随时被外层函数调用. 2. 可以避免全局变量被修改.被污染.更安全.(通 ...
- 云MSP服务案例|互联网商城的上云改造之旅
简介: 在中国,经过十年的发展,云计算产业已走过概念普及的1.0时期,进入"上云"和落地的2. 0阶段,企业上云意识不断增强,越来越多的企业选择部署多云和混合IT. 如今,云计算生 ...
- MySQL面试题:一条SQL语句在MySQL中执行过程全解析
一 .MySQL 基础架构分析 介绍一下下图涉及的一些组件的基本作用帮助大家理解这幅图. 连接/线程处理(连接器): 身份认证和权限相关(如连接处理.授权认证.安全等等). 查询缓存: 执行查询语句的 ...
- ElasticSearch的简单api介绍
1:ElasticSearch是什么? Elasticsearch 是一个分布式的免费开源搜索和分析引擎 适用于包括文本.数字.地理空间.结构化和非结构化数据等在内的所有类型的数据 Elasticse ...
- Linux 多路复用(多路转接)
出现原因 如果需要从一个文件描述符中读取数据,然后将数据写入到另一个文件描述符时,可以按照如下的阻塞 IO : while ((n = read(STDIN_FILENO, buf, BUFFER_S ...
- CSS3学习笔记-动画
CSS3中提供了许多有趣和实用的动画效果,可以使页面更加生动有趣,下面介绍一些常用的动画效果. @keyframes规则 使用@keyframes规则可以创建一系列动画帧,并定义它们的状态和样式,在页 ...