首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 其他服务器 >

Solaris之历程管理

2012-07-27 
Solaris之进程管理1. 列出进程ps#ps –f???????????? //显示当前用户进程的详细信息UID?? PID? PPID? C???

Solaris之进程管理

1. 列出进程ps

#ps –f???????????? //显示当前用户进程的详细信息

UID?? PID? PPID? C??? STIME TTY????? TIME CMD
root? 4737? 4724? 0 09:39:39 pts/2??? 0:00 bash
root? 4755? 4737? 0 10:10:05 pts/2??? 0:00 ps –f

#ps –Af???????? //列出系统中所有进程及详细信息

# ps –c???????? //调度顺序显示进程
?? PID? CLS PRI TTY????? TIME CMD
? 4737?? TS? 49 pts/2??? 0:00 bash
? 4759?? TS? 59 pts/2??? 0:00 ps

#ps –g 0??????? //显示某一组具体用户执行的进程的信息

PID TTY????? TIME CMD
???? 0 ???????? 0:36 sched
???? 1 ???????? 0:00 init
???? 2 ???????? 0:00 pageout
???? 3 ???????? 2:30 fsflush

查看所有进程详细信息,在System V中用ps -eaf在;BSD中,用ps -aux。

2. top 命令交互式监测系统中的进程。【在solaris 9中默认没有安装,需要自行安装】

top读取/proc文件系统来产生进程统计表。top还可以实现kill掉一个进程,实际上是一个菜单化的管理工具。

3. 自动化执行进程at

如想在一个特殊的时间启动sendmail,则可以使用At命令:

at 0900???????????????????? //在早上9:00发送一个mail
at> /usr/lib/sendmail -bd
at> hello world;
at>???????????????????? //以ctrl+D代替
commands will be executed using /bin/bash
job 1240886580.a at Tue Apr 28 10:43:00 2009

接下来查看任务是否成功

#cd /var/spool/cron/atjobs

#ls –l

-r-Sr--r--?? 1 userzz??? admin??????? 831 Apr 27 11:07 1240886580.a

#cat 1240886580.a

……

注意,你会发现你并没有收到mail,因为你没有以root用户身份提交作业,因此,普通用户没有权限以后台程序方式启动sendmail.

显示关于作业处理的信息
#at -l 1098648000.a
显示当前作业的情况
# ls -l /var/spool/cron/atjobs
我们也可以使用at命令移出作业
例如:#at -r 1098648000.a
4. 对于成批运行的作业,必须用crontab命令,对应的文件/var/spool/cron/cronjobs

查看自己的crontab文件,使用:

#crontab –l root
10 3 * * * /usr/sbin/logadm
15 3 * * 0 /usr/lib/fs/nfs/nfsfind
1 2 * * * [ -x /usr/sbin/rtc ] && /usr/sbin/rtc -c > /dev/null 2>&1
30 3 * * * [ -x /usr/lib/gss/gsscred_clean ] && /usr/lib/gss/gsscred_clean
#10 3 * * * /usr/lib/krb5/kprop_script ___slave_kdcs___

这是solaris为根用户产生的标准contab命令,其中6个字段分别表示:

分钟(0~59).小时(0~23).该月的天(1~31).该年的月(1~12).该周的天(0~6).要执行的命令

其中0表示星期天。

以上面第一行为例,表示在每天3:10分进行logadm

#crontab –e????????????????????? //启动默认的编辑器如vi,编辑cron文件
注意要以ctrl+c结束编辑过程,Ctrl+D会清空整个文件。

#crobtab -r user1??????????? //删除用户user1的所有任务。
5. 查看某一进程例子

#ps –eaf |grep bash
root? 4958? 4943? 0 11:22:02 pts/2??? 0:00 grep bash
root? 4943? 4937? 0 11:11:20 pts/2??? 0:00 bash

#cd /proc/4943

#ls –l

6. 使用proc工具

Proc相应的工具在目录/usr/proc/bin下。

#ls /usr/proc/bin
pcred?? pflags? pmap??? psig??? pstop?? ptree?? pwdx
pfiles? pldd??? prun??? pstack? ptime?? pwait
#/usr/proc/bin/pcred 4943
# /usr/proc/bin/pcred 4943
4943:?? e/r/suid=0? e/r/sgid=1
??????? groups: 1 0 2 3 4 5 6 7 8 9 12
#/usr/proc/bin/pmap 4943????????????? //查看进程的地址空间映射,以及调用的相应的库
4943:?? bash
00010000???? 496K r-x--? /usr/bin/bash
0009A000????? 80K rwx--? /usr/bin/bash
000AE000???? 144K rwx--??? [ heap ]
FF100000???? 688K r-x--? /usr/lib/libc.so.1
FF1BC000????? 32K rwx--? /usr/lib/libc.so.1
FF200000???? 568K r-x--? /usr/lib/libnsl.so.1
FF29E000????? 40K rwx--? /usr/lib/libnsl.so.1
FF2A8000????? 24K rwx--? /usr/lib/libnsl.so.1
FF300000????? 16K r-x--? /usr/lib/libmp.so.2
FF314000?????? 8K rwx--? /usr/lib/libmp.so.2
FF320000?????? 8K rwx--??? [ anon ]
FF330000????? 40K r-x--? /usr/lib/libsocket.so.1
FF34A000?????? 8K rwx--? /usr/lib/libsocket.so.1
FF350000???? 168K r-x--? /usr/lib/libcurses.so.1
FF38A000????? 32K rwx--? /usr/lib/libcurses.so.1
FF392000?????? 8K rwx--? /usr/lib/libcurses.so.1
FF3A0000?????? 8K r-x--? /usr/platform/sun4u-us3/lib/libc_psr.so.1
FF3B0000???? 184K r-x--? /usr/lib/ld.so.1
FF3EE000?????? 8K rwx--? /usr/lib/ld.so.1
FF3F0000?????? 8K rwx--? /usr/lib/ld.so.1
FF3FA000?????? 8K rwx--? /usr/lib/libdl.so.1
FFBFC000????? 16K rw---??? [ stack ]
total????? 2592K

# /usr/proc/bin/pldd 4943?????????? //列出进程调用的库文件
4943:?? bash
/usr/lib/libcurses.so.1
/usr/lib/libsocket.so.1
/usr/lib/libnsl.so.1
/usr/lib/libdl.so.1
/usr/lib/libc.so.1
/usr/lib/libmp.so.2
/usr/platform/sun4u-us3/lib/libc_psr.so.1
# /usr/proc/bin/psig 4943??????????? //调用与每个进程相关的信号

#/usr/proc/bin/pfiles 4943?????????? //显示每个进程打开的所有文件
#/usr/proc/bin/pwdx 4943????????? //显示当前进程的工作目录
#/usr/proc/bin/ptree 4943????????? //显示当前进程的工作树
7. 其它命令:lsof(list open files)【默认没有安装,需要安装】

该命令可以显示所有被进程打开的文件,如:

#lsof /

显示/目录下所有被打开的文件。

8. kill命令

用来给进程发送不同的信号,常见的有两种:

1表示挂挂起进程,如apache需要重新读取配置文件,可以用此参数

#kill –1 ‘pgrep apache’

9。表示杀死某个进程

#kill –9 bash

其它还有killall,pkill

?

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bennyfun79/archive/2009/04/27/4128291.aspx

热点排行