- 浏览: 2072664 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
ps ax |grep master | awk '{print $1}' |xargs kill -9
#查询并显示 -v是不包括, sed是选第二个 awk是打印第几个 ps ax |grep unicorn_rails | grep -v grep | sed -n 2p| awk '{print $1}'
如何根据进程名查询进程PID值(多种方法)
2010-12-28 13:18
很多时候,我们都需要根据进程名查询进程PID值,笔者总结了多种方法解决:
1、pidof命令
用pidof指令很轻易的找到您所想要的程序内容
范例二:仅列出关于 root 的所有程序开启的 socket 档案
root@linux ~]# lsof -u root -a -U
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
kmodule 793 root 4u unix 0xd744b700 3549 socket
udevd 801 root 5u unix 0xd744bb40 3561 socket
syslogd 1539 root 0u unix 0xd75946e0 4870 /dev/log
# 注意到那个 -a 吧!如果你分别输入 lsof -u root 及 lsof -U ,会有啥信息?
# 使用 lsof -u root -U 及 lsof -u root -a -U ,呵呵!都不同啦!
# -a 的用途就是在解决同时需要两个项目都成立时啊! ^_^
范例三:请列出目前系统上面所有的被启动的周边设备
[root@linux ~]# lsof +d /dev
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root 10u FIFO 0,13 1834 /dev/initctl
kmodule 793 root 2u CHR 1,3 2135 /dev/null
kmodule 793 root 3u CHR 5,1 2134 /dev/console
udevd 801 root 2u CHR 1,3 2135 /dev/null
syslogd 1539 root 0u unix 0xd75946e0 4870 /dev/log xinetd 1589 root 1r CHR 1,3 2135 /dev/null
#看吧!因为设备都在 /dev 里面嘛!所以啰,使用搜寻目录即可啊!
范例四:秀出属于 root 的 bash 这支程序所开启的档案
[root@linux ~]# lsof -u root | grep bash
bash 26199 root cwd DIR 3,2 4096 159875 /root
bash 26199 root rtd DIR 3,1 4096 2 /
bash 26199 root txt REG 3,1 686520 294425 /bin/bash
bash 26199 root mem REG 3,1 83160 32932 /usr/lib/gconv/BIG5.so
bash 26199 root mem REG 3,1 46552 915764 /lib/libnss_files-2.3.5.so
.....底下的数据就省略不写了.....
这个指令可以找出您想要知道的某个程序是否有启用哪些信息? 例如上头提到的范例四的执行结果呢!
[root@linux ~]# pidof [-sx] program_name
参数:
-s :仅列出一个 PID 而不列出所有的 PID
-x :同时列出该 program name 可能的 PPID 那个程序的 PID
范例:
范例一:列出目前系统上面 init 以及 syslogd 这两个程序的 PID
[root@linux ~]# pidof init syslogd
1 2546
# 理论上,应该会有两个 PID 才对。上面的显示也是出现了两个 PID 喔。
# 分别是 init 及 syslogd 这两支程序的 PID 啦。
范例二:找出 bash 即以 bash 为 PPID 的几个主要的 PID
[root@linux ~]# pidof -x bash
2961 2959 338
# 因为我的系统被我登入之后,我就会主动取得一个 bash 的程序,所以啰,
# 很自然就会拥有一个 PID 啊。只要我再以底下的方式,就可以取得我所想要的 PID 内容。
[root@linux ~]# ps aux | egrep '(2961|2959|338)'
dmtsai 338 0.0 0.1 6024 1536 pts/0 Ss 16:43 0:00 -bash
kiki 2961 0.0 0.1 6025 1526 pts/0 Ss 17:43 0:00 -bash
.....以下省略......
很简单的用法吧,讲解的这个pidof 指令,并且配合 ps aux 与正规表示法, 就可以很轻易的找到您所想要的程序内容了呢。
2、pgrep命令
语 法
pgrep [必要参数] [选择参数] [程序] 功 能 pgrep 命令:可以依照进程ID来浏览程序
类似命令: ps kill grep killall less top
参数必要参数
-f 显示完整程序
-l 显示源代码
-n 显示新程序
-o 显示旧程序
-v 与条件不符合的程序
-x 与条件符合的程序
选择参数
-p<进程号> 列出父进程为用户指定进程的进程信息
-t<终端> 指定终端下的所有程序
-u<用户> 指定用户的程序
范例
范例1:显示指定终端相联系的程序
root@snail-hnlinux:~# pgrep -t tty2
862
8236
8672
root@snail-hnlinux:~#
范例2:显示与某字符串相关的命令
root@snail-hnlinux:~# pgrep at //列出at字符串相关的程序
3
5
19
20
42
root@snail-hnlinux:~#
范例3:列出父进程为init进程的所有进程
root@snail-hnlinux:~# pgrep -P 1 //列出父进程为1的所有进程
314
317
672
root@snail-hnlinux:~#
范例4: 反向选择
root@snail-hnlinux:~# pgrep -v -P 1 //列出父进程不为1的进程
1
2
3
root@snail-hnlinux:~#
范例5:显示指定用户进程
root@snail-hnlinux:~# pgrep -u root
1
2
3
显示结果省略
3、ps命令
查找进程httpd的PID:
ps -ef | grep "httpd" | grep -v "grep" | awk '{print $2}'
发表评论
-
在ubuntu中.profile 和.bashrc的加载区别
2013-06-01 21:38 2529总之,profile不只是bash,在启动加载 bashrc是 ... -
command line tools for linux
2013-02-14 23:49 1469du -sh `ls .` for i in G M K; ... -
ubuntu 12.10 proxy install package apt-get
2013-01-31 06:47 1207#/.bashrc export http_proxy= ... -
查找多文件内容替换
2012-09-14 20:58 1493UPDATE: (05/03/2013) 当前使用: # ... -
shell script
2012-09-11 21:08 1037select r.name, count(p.id) from ... -
定期清空日志文件
2012-09-11 10:04 3346一个关于如何在指定文件大于1GB后,自动删除的问题。 批处理代 ... -
查看一个进程占用了那个端口
2012-09-11 09:59 1717有时候需要在Linux下查看一个进程占用了那个端口,但是只知道 ... -
utf8 ruby1.9
2012-07-13 01:57 1329引用invalid byte sequence in utf- ... -
VIM下跳转的区别
2012-05-06 00:33 1386VIM在开tag和jumplist的时候有几个差别 经常用的 ... -
shell command
2012-04-11 21:42 920ls -l . | egrep -c '^d' ls -l . ... -
unbuntu 查看什么占着80端口
2012-01-19 12:37 1437sudo lsof -i :80 sudo nets ... -
处理僵尸进程
2011-05-27 01:45 1172#!/bin/sh kill -HUP `ps -A - ... -
ubuntu 看硬件配置
2011-05-02 02:03 5282总是忘记阿,标记一下 sudo lspci -v lshw ... -
no such file to load -- zlib
2011-04-25 23:52 2753或者提示 fatal error: zlib.h: No su ... -
新装的mysql出现无法登陆的问题 er 1405 参考下面的解决
2011-01-23 12:39 3082Installing MySQL 5.0 First we ... -
ssh无密码登入设置
2010-08-17 21:02 1398现有2台机器 1、服务器192.168.1.112 2、个人机 ... -
bash和乱码
2010-08-16 00:15 1906几个bash下配置的区别 1)/etc/profile: 此文 ... -
ubuntu 配置git服务器及其它
2010-08-15 23:46 2173update: 生产public key的时候不能按照git ... -
nohup命令让程序在后台运行-linux
2010-02-04 14:17 7045nohup ruby /sunrise/www/realwor ... -
shell 条件可能用到
2010-01-26 15:05 1530为什么不能用ruby脚本写啊,shell脚本写的俺很烦啊... ...
相关推荐
本文将详细介绍如何使用 Shell 脚本来监控 Linux 服务器日志,并在出现关键字异常时触发相应的动作或告警操作,通知到邮件联系人。 安装邮件服务 为了实现邮件告警功能,需要先安装邮件服务。可以使用 mailx 软件...
shell脚本:一键部署jdk(带详细注释)
作为主shell的子进程,子shell将shell脚本中的命令作为批处理运行(因此称为“批处理进程”)。 在某些情况下,你也许想要知道运行中的子shell的PID。这个PID信息可以在不同的情况下使用。比如,你可以使用shell...
**C语言中文网shell脚本教程** 这是一份关于Shell脚本编程的离线学习资料,包含了一系列HTML文件,旨在帮助用户深入理解并掌握Linux Shell脚本编程技术。以下是其中涉及的一些关键知识点: 1. **Shell命令的本质**...
在Unity开发过程中,有时我们需要与操作系统进行交互,例如执行shell脚本来处理一些特定的任务。但在实际操作中,可能会遇到Unity无法正确调用shell脚本并传递参数的问题。本文将详细介绍如何解决这一问题,并提供一...
Linux Shell 脚本编程基础知识点总结 Linux 脚本编写基础 1.1 语法基本介绍 * `#!` 符号用来告诉系统它后面的参数是用来执行该文件的程序 * 在 Linux 中,使用 `/bin/sh` 来执行程序 * 编辑好脚本后,需要使其可...
Shell脚本:MySQL、Redis、JDK、nginx、Nacos_Shell一键安装回滚
"杀进程的shell脚本"是一个用于结束特定进程的脚本,它利用了shell语言的特性来查找并终止指定的进程。下面将详细讨论如何编写这样的脚本以及涉及的相关知识点。 首先,我们需要理解什么是进程。在操作系统中,进程...
shell批量解压脚本,可根据关键字进行提取
### Shell 脚本实现服务器进程监控方法详解 在IT运维和开发环境中,服务器进程的稳定运行至关重要。本文将深入探讨如何使用Shell脚本实现服务器进程监控,这不仅有助于及时发现异常情况,还能提高系统的可用性和...
Shell脚本监控日志中预警信息,配合定时任务,检查到告警信息发送邮件
在这个练习中,我们将编写一个SHELL脚本,利用循环和continue关键字,计算100以内能被3整除的数之和。脚本代码如下: ```bash #!/bin/sh sum=0 for a in `seq 1 100` do if [ `expr $a % 3` -ne 0 ] then ...
在Linux系统中,shell脚本是一种非常重要的工具,能够自动完成特定的任务,提高工作效率。本文将详细介绍shell脚本的基础知识,包括shell脚本的定义、组成、种类、特点、变量、权限、执行方法等方面的内容。 一、...
Linux Shell脚本教程:30分钟玩转Shell脚本编程 _
资源名称:Linux Shell脚本学习基础视频资源目录:【】11a00d99b60c4e2eba3440b8aa3a6bdd【】linux_shell脚本编程_01认识shell,如何编写shell脚本和执行【】linux_shell脚本编程_02vivim简单的常用操作【】linux_...
此shell脚本中包含功能: 一键启动当前目录所有jar包 一键停止当前目录jar包 一键查看当前目录所有jar包的进程数 一键重启当前目录jar包 执行命令为: 查看进程:sh java_check.sh process 启动:sh java_check.sh ...
shell脚本自动筛选文件夹及其子目录下所有文件中的特定关键字,并将结果输出到对应文件!
仅供学习
Shell脚本是Linux/Unix操作系统中的强大工具,它允许用户编写一系列命令,形成自动化任务,以提高工作效率。本文档收集了250个实用的Shell脚本实例,涵盖了多个应用场景,包括系统管理、安全防护、数据库备份等核心...
文件包含大作业shell脚本(快速备份系统)源码,实验课做的Linux实验shell脚本:Samba实验,DDNS(DHCP服务器 和DNS服务器的配置)的shell脚本,运行脚本每个实验只需要两三分钟即可完成。 其中sy1为实验一脚本,sy2...