linux 进程存在 linux查看进程状态

这篇文章给大家聊聊关于linux 进程存在,以及linux查看进程状态对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。

linux线程查询指令linux线程查询

怎么在linux系统下查看网卡状态信息?

方法一:

ethtooleth0采用此命令可以查看到网卡相关的技术指标。

(不一定所有网卡都支持此命令)

ethtool-ieth1加上-i参数查看网卡驱动。

可以尝试其它参数查看网卡相关技术参数。

方法二:

也可以通过dmesg|grepeth0等看到网卡名字(厂家)等信息。

通过查看/etc/sysconfig/network-scripts/ifcfg-eth0可以看到当前的网卡配置包括IP、网关地址等信息。

当然也可以通过ifconfig命令查看。

Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux操作系统诞生于1991年10月5日(这是第一次正式向外公布时间)。Linux存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。严格来讲,Linux这个词本身只表示Linux内核,但实际上人们已经习惯了用Linux来形容整个基于Linux内核,并且使用GNU工程各种工具和数据库的操作系统。

linux查看活跃线程命令?

可以执行ps-ef进行查看

Linux多线程通信?

PIPE和FIFO用来实现进程间相互发送非常短小的、频率很高的消息;

这两种方式通常适用于两个进程间的通信。

共享内存用来实现进程间共享的、非常庞大的、读写操作频率很高的数据(配合信号量使用);

这种方式通常适用于多进程间通信。

其他考虑用socket。这里的“其他情况”,其实是今天主要会碰到的情况:

分布式开发。

在多进程、多线程、多模块所构成的今天最常见的分布式系统开发中,

socket是第一选择

。消息队列,现在建议不要使用了----因为找不到使用它们的理由。在实际中,我个人感觉,PIPE和FIFO可以偶尔使用下,共享内存都用的不多了。在效率上说,socket有包装数据和解包数据的过程,所以理论上来说socket是没有PIPE/FIFO快,不过现在计算机上真心不计较这么一点点速度损失的。你费劲纠结半天,不如我把socket设计好了,多插一块CPU来得更划算。另外,进程间通信的数据一般来说我们都会存入数据库的,这样万一某个进程突然死掉或者整个服务器死了,也不至于丢失重要数据、便于回滚到之前的状态。从这个角度考虑,适用共享内存的情况也更少了,所以socket使用得更多。再多说一点关于共享内存的:共享内存的效率确实高,但它的重点在“共享”二字上。如果的确有好些进程共享一大块数据(如果把每个进程都看做是类的对象的话,那么共享数据就是这个类的static数据成员),那么共享内存就是一个不二的选择了。但是在面向对象的今天,我们更多的时候是多线程+锁+线程间共享数据。因此共享进程在今天使用的也越来越少了。不过,在面对一些极度追求效率的需求时,共享内存就会成为唯一的选择,比如高频交易系统。除此以外,一般是不需要特意使用共享内存的。另外,

PIPE和共享内存是不能跨LAN的

(FIFO可以但FIFO只能用于两个进程通信)

如果你的分布式系统随着需求的增加而越来越大所以你想把不同的模块放在不同机器上而你之前开发的时候用了PIPE或者共享内存,那么你将不得不对代码进行大幅修改......同时,即使FIFO可以跨越LAN,其代码的可读性、易操作性和可移植性、适应性也远没有socket大。这也就是为什么一开始说socket是第一选择的原因。最后还有个信号简单说一下。

请注意,是信号,不是信号量。

信号量是用于同步线程间的对象的使用的(建议题主看我的答案,自认为比较通俗易懂:

semaphore和mutex的区别?-Linux-知乎

)。信号也是进程间通信的一种方式。比如在Linux系统下,一个进程正在执行时,你用键盘按Ctrl+c,就是给这个进程发送了一个信号。进程在捕捉到这个信号后会做相应的动作。虽然信号是可以自定义的,但这并不能改变信号的局限性:

不能跨LAN、信息量极其有限

。在现代的分布式系统中,通常都是

消息驱动:

即进程受到某个消息后,通过对消息的内容的分析然后做相应的动作。如果你把你的分布式系统设置成信号驱动的,这就表示你收到一个信号就要做一个动作而一个信号的本质其实就是一个数字而已。这样系统稍微大一点的话,系统将变得异常难以维护;甚至在很多时候,信号驱动是无法满足我们的需求的。因此现在我们一般也不用信号了。因此,请记住:

除非你有非常有说服力的理由,否则请用socket。

顺便给你推荐个基于socket的轻量级的消息库:ZeroMQ。

linux下,如何查看工控机的串口被哪个线程占用,能否使该线程强制释放串口?

在串口的驱动程序注册的open函数里加入这样一句话:printk("process%dhasopenttyn",current->pid);可以判断出来哪个进程打开了串口设备,或者是否有进程打开串口current->pid的值表示进程号!

如何查看linux端口被哪个进程占用

再进行系统操作的时候,启动某个应用程序时,需要占用服务的某一个端口,但是由于服务的端口和非其他程序占用的时候,系统就会提示服务端口已被占用,不可以进行操作,今天小编介绍下如何查看Linux系统上服务端口哪个应用程序占用?

查询被占用的端口。首先是需要输入命令,查看被占用的端口的进程,netstat-tunpl|grep端口号

查询进程id。通过上面的命令就可以列出,这个端口被哪些应用程序所占用,然后找到对应的进程ID,

根据集成id查询进程。如果想详细查看这个进程,ID具体是哪一个进程,可以通过命令的方式进行查看进程的详细信息,ps-ef|grep进程ID

查看进程详情信息。通过执行上面的命令,就可以看到这个进程的详细信息,同时也可以看到这个进程存在的目录,进程执行的文件等信息,

查看进行所在目录。通过ll/proc/进程ID/cwd命令,可以直接查看进程所在的目录,这样的话就可以快速定位到进程的目录,

操作进程。查找他的新车目录之后,就可以对这个应用程序进行一系列的操作,比如说重启删除等,

linux中进程 kacpid, kblockd是什么

守护进程及调度进程,以下是摘录的一些常用进程的说明:

/sbin/init内核启动的第一个用户级进程,引导用户空间服务

[kthreadd]内核线程管理

[migration/0]用于进程在不同的CPU间迁移

[ksoftirqd/0]内核调度/管理第0个CPU软中断的守护进程

[migration/1]管理多核心

[ksoftirqd/1]内核调度/管理第1个CPU软中断的守护进程

[events/0]处理内核事件守护进程

[events/1]处理内核事件守护进程

[cpuset]在每个处理器上单独运行进程,通过文件系统实现

[khelper]内核帮助进程

[netns]网络仿真器,模拟网络环境

[async/mgr]异步加密管理进程

[pm]包管理

[sync_supers]特权同步,将缓冲区文件强制写入硬盘

[bdi-default] JTAG调试器默认进程

[kintegrityd/0]内核完整性检查

[kintegrityd/1]内核完整性检查

[kblockd/0]管理磁盘块读写

[kblockd/1]管理磁盘块读写

[kacpid]高级配置和电源管理接口

[kacpi_notify] acpi进程的通知进程

[kacpi_hotplug] acpi热插拔管理

[ata/0] ATA硬盘接口管理

[ata/1] ATA硬盘接口管理

[ata_aux] ATA硬盘接口管理

[khubd]内核的usb hub

[kseriod]内核线程

[kswapd0]内存回收,确保系统空闲物理内存的数量在一个合适的范围

[ksmd]作为内核中的守护进程存在,它定期执行页面扫描,识别副本页面并合并副本,释放这些页面以供它用

[aio/0]代替用户进程管理io

[aio/1]代替用户进程管理io

[ecryptfs-kthrea]加密系统

[crypto/0]提供加密解密相关函数

[crypto/1]提供加密解密相关函数

[scsi_eh_0] scsi设备

[scsi_eh_1] scsi设备

[scsi_eh_2] scsi设备

[scsi_eh_3] scsi设备

[kpsmoused]内核鼠标支持

[kjournald] Ext3文件系统的日志管理

[kjournald] Ext3文件系统的日志管理

[flush-1:0]释放存储在缓存区中的数据

[flush-1:1]释放存储在缓存区中的数据

[flush-1:2]释放存储在缓存区中的数据

[flush-1:3]释放存储在缓存区中的数据

[flush-1:4]释放存储在缓存区中的数据

[flush-1:5]释放存储在缓存区中的数据

[flush-1:6]释放存储在缓存区中的数据

[flush-1:7]释放存储在缓存区中的数据

[flush-1:8]释放存储在缓存区中的数据

[flush-1:9]释放存储在缓存区中的数据

[flush-1:10]释放存储在缓存区中的数据

[flush-1:11]释放存储在缓存区中的数据

[flush-1:12]释放存储在缓存区中的数据

[flush-1:13]释放存储在缓存区中的数据

[flush-1:14]释放存储在缓存区中的数据

[flush-1:15]释放存储在缓存区中的数据

[flush-8:0]释放存储在缓存区中的数据

[kjournald] Ext3文件系统的日志管理

[loop0]负责对loop设备进行操作

[loop1]负责对loop设备进行操作

[loop2]负责对loop设备进行操作

[kcopyd]内核拷贝线程

[ext4-dio-unwrit] Ext4文件系统相关线程

upstart-udev-bridge--daemon一个守护进程,负责接收udev信息

udevd--daemon一个守护进程,在向udev提交之前重新订制热插拔事件,从而避免各种各样的竞争条件

/usr/sbin/restorecond用于给SELinux监测和重新加载正确的文件上下文

/sbin/auditd审计守护进程

/sbin/audispd审计调度进程

[kauditd]内核审核守护进程

/sbin/getty-8 38400 tty4等待用户从tty4登录

/sbin/getty-8 38400 tty5等待用户从tty5登录

/sbin/getty-8 38400 tty2等待用户从tty2登录

/sbin/getty-8 38400 tty3等待用户从tty3登录

/sbin/getty-8 38400 tty6等待用户从tty6登录

acpid-c/etc/acpi/events-s/var/run/acpid.socket一个用户空间的服务进程,它充当Linux内核与应用程序之间通信的接口

cron守护进程,周期地运行用户调度的任务

/sbin/getty-8 38400 tty1等待用户从tty1登录

X:0-br vt7-nolisten tcp Xsever

[flush-252:0]释放存储在缓存区中的数据

lwm窗口管理器

fcitx输入法

su切换root用户

bash终端

ps x查看当前用户的进程

阅读剩余
THE END