linux 服务进程 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系统几乎所有进程处于sleep状态是否正常
你的sleep进程基本上都是java相关的。可能是由于某个进程长期得不到响应,比如nfs造成的IO中断,应用一直在等待响应,等的都睡着了。。所以也看不到报错,呵呵。具体的也看不出到底是哪个进程引起的。建议就是重启相关的java应用。或者重启机器。
进程为什么会被置于uninterruptible sleep状态呢?处于uninterruptible sleep状态的进程通常是在等待IO,比如磁盘IO,网络IO,其他外设IO,如果进程正在等待的IO在较长的时间内都没有响应,那么就很会不幸地被 ps看到了,同时也就意味着很有可能有IO出了问题,可能是外设本身出了故障,也可能是比如挂载的远程文件系统已经不可访问了,我以前遇到的问题就是由 down掉的NFS服务器引起的。
正是因为得不到IO的相应,进程才进入了uninterruptible sleep状态,所以要想使进程从uninterruptible sleep状态恢复,就得使进程等待的IO恢复,比如如果是因为从远程挂载的NFS卷不可访问导致进程进入uninterruptible sleep状态的,那么可以通过恢复该NFS卷的连接来使进程的IO请求得到满足,除此之外,要想干掉处在D状态进程就只能重启整个Linux系统了。
linux系统中ftp服务进程名
linux系统ftp进程名为以下整体:
Linux系统ftp程序常用命令
作为Linux系统中的文件传输程序之一,ftp具备功能强大,小巧轻快的特点,且是使用频率最高的应用程序之一。下面我们将用一整个篇幅进行介绍。欢迎阅读。
【语法格式】
#ftp
【常用参数】
-d:运行时显示详细的处理信息
-i:关闭交互模式
-p:传输文件模式为被动模式
【FTP模式下的'常用命令】
ascii:使用ascii类型传输方式(文本传送)
binary:使用二进制文件传输方式(应用程序等文件传送)
bye、quit:退出ftp会话过程
cd:切换远程主机目录
lcd:切换本地工作目录
ls:显示远程主机目录下内容
:删除远程主机的文件
passive:打开/关闭被动传输方式
get:获取单个远程主机文件
mget:获取多个远程主机文件
put:将本地文件传送至远程主机
mput:将多个文件传输至远程主机
pwd:显示远程主机的当前工作目录
!pwd:显示本地主机当前工作目录
rename:更改远程主机文件名
mkdir:在远程主机创建目录
rmdir:删除远程主机目录
size:显示远程主机文件大小
help、?:显示ftp内部命令cmd的帮助信息,如helpget或?get
【样例】
//以test用户ftp连接远程主机的ftp端口24520
#ftptest@192.168.1.524520
Connectedto192.168.1.5.
220(vsFTPd2.0.7)
331Pleasespecifythepassword.
Password://输入密码
230Loginsuccessful.
RemotesystemtypeisUNIX.
Usingbinarymodetotransferfiles.
ftp>ls//显示当前目录下文件
200Portcommandsuccessful.
150OpeningASCIImodedataconnectionfordirectorylist.
drwx------1usergroup0May2119:15a
drwx------1usergroup0May2119:15b
-rwx------1usergroup45Apr2611:41lnux.txt
-rwx------1usergroup0Feb0108:59study.txt
226Transfercomplete
ftp>pwd//显示当前路径
257"/home/test"
ftp>mkdira//创建目录a
ftp>cda//切换到目录a
250Directorysuccessfullychanged.
ftp>!pwd//显示本地目录
/root
ftp>getlnux.txt//下载文件
local:lnux.txtremote:lnux.txt
229EnteringExtendedPassiveMode(|||30063|)
150OpeningBINARYmodedataconnectionforlnux.txt(403bytes).
100%|******************************************************************************************|40356.56KB/s00:00ETA
226FilesendOK.
403bytesreceivedin00:00(54.30KB/s)
ftp>mgetc*//模糊匹配下载多个文件
mgetcarrier.cfg_10_08?y//默认交互模式弹出提示,y是,n否
229EnteringExtendedPassiveMode(|||30078|)
150OpeningBINARYmodedataconnectionforcarrier.cfg_10_08(403bytes).
100%|******************************************************************************************|40325.35KB/s00:00ETA
226FilesendOK.
403bytesreceivedin00:00(24.96KB/s)
mgetcrontabuser.list?y//默认交互模式弹出提示,y是,n否
229EnteringExtendedPassiveMode(|||30100|)
150OpeningBINARYmodedataconnectionforcrontabuser.list(4bytes).
100%|******************************************************************************************|40.50KB/s00:00ETA
226FilesendOK.
4bytesreceivedin00:00(0.49KB/s)
ftp>bye//退出ftp
221Goodbye.