标签 进程 下的文章

lsof查看文件归属进程占用信息

lsof: list open files
可以列出被进程所打开的文件的信息。被打开的文件可以是
1.普通文件
2.目录
3.网络文件系统的文件
4.字符设备文件
5.(函数)共享库
6.管道,命名管道
7.符号链接
8.底层的socket字流,网络socket,unix域名socket
9.在linux里面,大部分的东西都是被当做文件的…
lsof常用使用说明:

1.列出所有打开的文件:

lsof

备注: 如果不加任何参数,就会打开所有被打开的文件,建议加上一下参数来具体定位

2. 查看谁正在使用某个文件

lsof   /filepath/file

3.递归查看某个目录的文件信息

lsof +D /filepath/filepath2/

备注: 使用了+D,对应目录下的所有子目录和文件都会被列出

4. 比使用+D选项,遍历查看某个目录的所有文件信息 的方法

lsof | grep ‘/filepath/filepath2/’

5. 列出某个用户打开的文件信息

lsof  -u username

备注: -u 选项,u其实是user的缩写

6. 列出某个程序所打开的文件信息

lsof -c mysql

备注: -c 选项将会列出所有以mysql开头的程序的文件,其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字符了

7. 列出多个程序多打开的文件信息

lsof -c mysql -c apache

8. 列出某个用户以及某个程序所打开的文件信息

lsof -u test -c mysql

9. 列出除了某个用户外的被打开的文件信息

lsof   -u ^root

备注:^这个符号在用户名之前,将会把是root用户打开的进程不让显示

10. 通过某个进程号显示该进行打开的文件

lsof -p 1

11. 列出多个进程号对应的文件信息

lsof -p 123,456,789

12. 列出除了某个进程号,其他进程号所打开的文件信息

lsof -p ^1

13 . 列出所有的网络连接

lsof -i

14. 列出所有tcp 网络连接信息

lsof  -i tcp

15. 列出所有udp网络连接信息

lsof  -i udp

16. 列出谁在使用某个端口

lsof -i :3306

17. 列出谁在使用某个特定的udp端口

lsof -i udp:55

特定的tcp端口

lsof -i tcp:80

18. 列出某个用户的所有活跃的网络端口

lsof  -a -u test -i

19. 列出所有网络文件系统

lsof -N

20.域名socket文件

lsof -u

21.某个用户组所打开的文件信息

lsof -g 5555

22. 根据文件描述列出对应的文件信息

lsof -d description(like 2)

23.根据文件描述范围列出文件信息

lsof -d 2-3

24. 列出COMMAND列中包含字符串" sshd",且文件描符的类型为txt的文件信息
lsof -c sshd -a -d txt

25.列出被进程号为1234的进程所打开的所有IPV4 network files
lsof -i 4 -a -p 1234

26. 列出目前连接主机peida.linux上端口为:20,21,22,25,53,80相关的所有文件信息,且每隔3秒不断的执行
lsof -i @peida.linux:20,21,22,25,53,80 -r 3

pkill按终端号踢出用户

当作于管理进程时,pkill 命令和 killall 命令的用法相同,都是通过进程名杀死一类进程,该命令的基本格式如下:
[root@localhost ~]# pkill [信号] 进程名
表 1 pkill 命令常用信号及其含义
信号编号 信号名 含义
0 EXIT 程序退出时收到该信息。
1 HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
2 INT 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
3 QUIT 退出。
9 KILL 杀死进程,即强制结束进程。
11 SEGV 段错误。
15 TERM 正常结束进程,是 kill 命令的默认信号。
pkill命令踢出登陆用户

pkill [-t 终端号] 进程名
pkill -kill -t tty
或者pkill -9 -t tty

可以先用w命令查看当前在线用户,然后强制下线;

使用taskkill强制结束进程

在windows系统中有时候会进程卡住、僵死、死锁等用任务管理器无法结束掉程序或进程,可以使用taskkill命令强制结束:
taskkill 命令示例用法:
例如:

    TASKKILL /F /IM cmd.exe /T
    TASKKILL /PID 1000 /T /F
    TASKKILL /IM notepad.exe
    TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
    TASKKILL /F /IM cmd.exe /T
    TASKKILL /F /FI "PID ge 1000" /FI "WINDOWTITLE ne untitle*"
    TASKKILL /F /FI "USERNAME eq NT AUTHORITYSYSTEM" /IM notepad.exe
    TASKKILL /S system /U domainusername /FI "USERNAME ne NT*" /IM *
    TASKKILL /S system /U username /P password /FI "IMAGENAME eq note*"
Taskkill /?运行结果:
TASKKILL [/S system [/U username [/P [password]]]]
         { [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]

描述:

使用该工具按照进程 ID (PID) 或映像名称终止任务。
参数列表:
/S        system               指定要连接到的远程系统。
/U       [domain]user     指定应该在哪个用户上下文执行这个命令。
/P        [password]        为提供的用户上下文指定密码。如果忽略,提示输入。
/FI       filter                   应用筛选器以选择一组任务。允许使用 "*"。例如,映像名称 eq acme*
/PID    processid           指定要终止的进程的 PID。使用 TaskList 取得 PID。
/IM     imagename        指定要终止的进程的映像名称。通配符 '*'可用来指定所有任务或映像名称。
/T                                  终止指定的进程和由它启用的子进程。
/F                                  指定强制终止进程。
/?                                  显示帮助消息。

Hugepages参数说明及使用注意事项

Hugepages是从Linux kernal 2.6后被引入的,其目的是使用更大的memory page size以适应越来越大的系统内存,使用hugepage可以用更大的内存页来取代传统的4K页面。

page table

page table是操作系统上的虚拟内存系统的数据结构模型,用于存储虚拟地址与物理地址的对应关系。
当我们访问内存时,首先访问page table,然后Linux在通过page table的mapping来访问真实物理内存(ram+swap)

TLB

A Translation Lookaside Buffer (TLB)
TLB是在cpu中分配的一个固定大小的buffer(or cache),用于保存page table的部分内容,使CPU更快的访问并进行地址转换。

hugetlb

hugetlb 是记录在TLB 中的条目并指向Hugepages。

hugetlbfs

这是一个新的基于2.6 kernel之上的内存文件系统,如同tmpfs。
在TLB中通过hugetlb来指向hugepage。这些被分配的hugepage作为内存文件系统hugetlbfs(类似tmpfs)提供给进程使用。

HugePage主要带来以下好处:

1、HugePages 会在系统启动时,直接分配并保留对应大小的内存区域。
2、HugePages 在开机之后,如果没有管理员的介入,是不会释放和改变的。
3、没有swap。
Notswappable: HugePages are not swappable. Therefore thereis no page-in/page-outmechanism overhead.HugePages are universally regarded aspinned.







---阅读剩余部分---

Oracle11g R2启动Enterprise Manager dbconsole进程

要从客户端浏览器访问 Oracle Enterprise Manager Database Control,必须启动 dbconsole 进程。dbconsole 进程在安装之后自动启动。如果该进程没有启动,则您必须在命令行下手工启动。

以 oracle 用户身份登录操作系统。执行以下命令来查看 dbconsole 进程的状态:

emctl status dbconsole  #查看进程状态

Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://centos6:1158/em/console/aboutApplication
Oracle Enterprise Manager 11g is not running.

emctl start dbconsole  #启动 dbconsole 进程

Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://centos6:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ........ started. 
------------------------------------------------------------------
Logs are generated in directory /data/app/oracle/product/11.2.0/db_1/centos6_orcl/sysman/log 

emctl stop dbconsole  #停止 dbconsole 进程

Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 
Copyright (c) 1996, 2009 Oracle Corporation.  All rights reserved.
https://centos6:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 11g Database Control ... 
 ...  Stopped. 

---阅读剩余部分---

Windows下查看端口对应的进程及kill

查看所有进程占用的端口
netstat –ano 查看所有进程

查看占用指定端口的程序
netstat –ano|findstr "指定端口号"

通过任务管理器杀死相关的进程
方法一:使用任务管理器杀死进程
打开任务管理器->查看->选择列->然后勾选PID选项,回到任务管理器上可以查看到对应的pid,然后结束进程

方法二:使用命令杀死进程
1>首先找到进程号对应的进程名称
tasklist|findstr 进程号
如:tasklist|findstr 80

2>然后根据进程名称杀死进程
taskkill /f /t /im 进程名称
如:taskkill /f /t /im /qq.exe

nginx以普通用户运行

root账号执行:

useradd nginx
chown -R nginx.nginx /usr/local/nginx/
setcap CAP_NET_BIND_SERVICE=+ep /usr/local/nginx/sbin/nginx
killall -9 nginx
su - nginx
/usr/local/nginx/sbin/nginx

查看进程,nginx主进程及子进程都是以nginx用户在运行了;nginx.png

最新

分类

归档

评论

其它