1.view system processes
2.kill frozen processes
3.schedule an automatic one-time execution of a command 某一时刻运行一个命令
4.schedule an automatic recurring execution of a command 定期循环运行一个命令
 
 
 
 
1.view system processes
/usr/dt/bin/sdtprocess 图形化的进程管理器,也可以在面板上Find Processes打开
prstat
prstat -a
PID  进程ID
USERNAME 进程运行的用户ID
SIZE 使用虚拟内存多少K M G为单位
RSS 进程驻留集大小K M G为单位
STATE 进程的状态,有cpu sleep run zombie stop
PRI 优先级 值大优先
NICE 这个值使用优先级的值计算 只有特定调度类的进程采用
TIME 累计执行时间
CPU 占用率
PROCESS/NLWP 进程名称/lwps的数量
 
-a 显示所有报告
-c 新的报告显示在上一个报告的下方,利于信息收集
-s 降序  -S 升序
prstat -p 122单独输出PID为122进程的报告
prstat -s cpu 2 以cpu使用率降序排列 每2秒更新一次
prstat -u root 单独输出root用户执行的进程
prstat -n 50 -S cpu 显示50行 以cpu使用率为升序方式排序
替换cpu的还有 pri优先级 rss 驻留集 size进程大小 time执行时间
prstat 1  以1秒的间隔刷新
 
prstat -Z  专题报告输出zone
prstat -t  专题报告输出user
       -J  专题报告输出打印
       -T  输出额外打印报告
       -m  详细微观报告
 
prstat -mL -p 9 2 单独对PID为9的进程进行微观监控,刷新时间为2秒
 
------使用场景  cpu时延问题
prstat -m  查看 LAT列
 
 
priocntl 命令设置进程的优先级
 
 
nice命令对Solaris以前的版本兼容
 
 
-----------------------
2.kill frozen processes
#pgrep -l mail 查看进程
818 sendmail
817 sendmail
kill -9 817 
kill -9 818
 
 
kill -signal pid
kill -l  显示所有可用的signal信号
 
pkill -signal  process
pkill -9 sendmail
 
杀死多个进程
kill -signal PID PID PID ...
kill -9 12 312 1992 3123
 
pkill signal process process
pkill 9 sendmail dt 
 
kill默认发送15信号  使进程停止
信号数 信号 作用   默认工作
1 SIGHUP Hangup   Exit
2 SIGINT Interrupt  Exit
9 SIGKILL Kill   Exit
15 SIGTERM Terminate  Exit
 
1 SIGHUP 是由于电话线或者连接终端停止引起的信号挂起,一些确切的进程如inetd,in,named进程挂起引起需要重新读取配置文件
2 SIGINT 通常是ctrl+c键组合来终端进程
9 SIGKILL kill进程,进程不能忽略这个信号
15 SIGTERM 进程停止信号,一些进程会忽略这个信号
 
 
 
如果有某个服务假死的话,就需要kill -9 process
 
 
------------调度作业-------------
先要开启cron服务
ps -ef |grep cron
svcs -a |grep cron
svcadm enable svc:/system/cron:default
svcs -a |grep cron
ps -ef |grep cron
 
3.scheduling an automatic one-time execution of a command
at -m -q queuename time date -q在指定time date时间内 执行at任务 并在任务完成后-m发送邮件给用户
at -r job remove清楚一个job
at -l 列出所有的jobs
将需要定时的任务存放在/var/spool/cron/atjobs/目录下
之后便可以用命令at -l 和命令atq查看到
使用命令at -r 任务文件名 移除任务
 
控制at命令的访问
/etc/cron.d/at.deny这个文件标识禁止使用at命令的用户,这个文件的每行都是一个用户名
/etc/cron.d/at.allow文件默认不存在
规则:at.allow文件不存在,则除at.deny内的其他所有用户都可以at
at.allow文件存在,则只有at.allow文件内的用户才能at,root用户若没有在at.allow文件内的话,也是不能at的
如果2个文件都存在,则只有allow文件内的用户才可以at
若用户A都在这2个文件内,则用户A依然可以at
以上规则是经过试验认证,官方文档上列出的是:
若用户都存在于这2个文件内,则用户不可以at
若两个文件都存在,则只有root用户才可以at
其他相同。
 
at -q x 17:00
at>echo "cxm at~"
at> <Control+D>  保存并退出
atq查看
at -l查看
 
----------
4.schedule an automatic recurring execution of a command 
定期循环运行一个命令
 
所有的crontab文件都保持在/var/spool/cron/crontabs/目录下,并且是以创建cron作业的用户的登录名来存储的
cron进程负责这些作业的安排和运行。clock守护进程,cron,在系统启动的时候在后台持续运行
 
 
 
哪个用户需要创建周期调度作业,就用那个用户的用户名在/var/spool/cron/crontabs/目录下创建一个crontab文件,如:root用户的文件是/var/spool/cron/crontabs/root
 
该文件格式中包含有6段
10 3 * * 0 /usr/sbin/log/adm
10代表分 0~59之间
3代表时 0~23之间
*代表 日 1~31之间
*代表 月 1~12之间
0代表 周中天数 0~6之间
/usr/sbin/log/adm代表需要执行的命令
 
*代表期间内的所有值
N期间的某个值
n,p,q 期间的某刻值 10,20,30,40代表每10分钟
n-p期间值的某个期间 1-4 代表1点到4点
 
crontab命令可以查看 编辑 删除crontab文件
crontab -l 查看crontab文件
若使用crontab命令没有带任何参数,必须使用Ctrl+C命令退出,若使用Ctrl+D命令会报crontab文件内容清空
crontab -e 打开crontab文件前需要设置变量
EDITOR=vi;export EDITOR
C shell的话使用命令setenv EDITOR vi设置变量
 
移出crontab文件
一般用户只能移出属于自己的文件,root用户可以移出任何一个用户的crontab文件
crontab -r username
 
控制访问crontab文件
/etc/cron.d/cron.deny文件
/etc/cron.d/cron.allow文件默认不存在
这2个文件的规则是:
cron.allow文件不存在,则除cron.deny内的其他所有用户都可以使用crontab命令
cron.allow文件存在,则只有at.allow文件内的用户才能crontab,root用户若没有在cron.allow文件内的话,也是不能使用crontab命令
如果2个文件都存在,则只有allow文件内的用户才可以使用crontab命令
若用户A都在这2个文件内,则用户A依然可以使用crontab命令
以上规则是经过试验认证,官方文档上列出的是:
若用户都存在于这2个文件内,则用户不可以使用crontab命令
若两个文件都存在,则只有root用户才可以使用crontab命令
其他相同。
 
 
当cron.allow不存在时,root用户可以-l查看自己的crontab文件,可以-l查看、-r删除其他用户的crontab文件
root用户执行下列命令
crontab -l
crontab -l cxm
crontab -r cxm 
crontab -l sys
 
当cron.allow文件存在时,root用户不再该文件列表内,此时root用户可以-l查看、-r删除普通cxm用户的crontab文件,但是不能-l查看和-r删除sys等其他高级用户的crontab文件
root用户执行下列命令
crontab -l 不可以
crontab -l cxm 可以
crontab -r cxm 可以
crontab -l sys 不可以,被拒绝
 
只有在root用户被加入到cron.allow文件内才行