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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值