电商系统网站开发,大一html网页制作作业,免费域名服务,专业建设总结前言Linux中进程间通信又称为IPC(Inter process communication)#xff0c;大致上可以分为这么几类#xff1a;消息队列(message queue)#xff0c;旗语(semerpore)#xff0c;共享内存(shared memory)#xff0c;信号(signal)#xff0c;Unix域套接字#xff0c;socket…前言Linux中进程间通信又称为IPC(Inter process communication)大致上可以分为这么几类消息队列(message queue)旗语(semerpore)共享内存(shared memory)信号(signal)Unix域套接字socket等。一、信号发送signal用来向进程传递微小的信息。显示可用信号kill -lman 7 signal1.kill命令格式kill [-SIGNAL] PIDSIGNAL:(1) 信号的完整名称例如SIGHUP、SIGINT、SIGKILL、SIGTERM、SIGCONT、SIGSTOP(2) 信号简称HUP、KILL(3) 信号数据标识12, ...SIGHUP1, 让进程重读配置文件中的信息而无须重启进程SIGINT2, interrupt打断正在运行中进程相当于CtrlcSIGKILL: 9, 强行中止正在运行的进程SIGTERM15, 优雅关闭正在运行的进程 SIGSTOP19, 暂停进程SIGCONT: 18继续暂停进程实例[rootyoung ~]# ps aux|grep httpdroot 56893 1.0 0.1 226128 5056 ? Ss 21:47 0:00 /usr/sbin/httpd -DFOREGROUNDapache 56894 0.0 0.1 228212 3120 ? S 21:47 0:00 /usr/sbin/httpd -DFOREGROUNDapache 56895 0.0 0.1 228212 3120 ? S 21:47 0:00 /usr/sbin/httpd -DFOREGROUNDapache 56896 0.0 0.1 228212 3120 ? S 21:47 0:00 /usr/sbin/httpd -DFOREGROUNDapache 56897 0.0 0.1 228212 3120 ? S 21:47 0:00 /usr/sbin/httpd -DFOREGROUNDapache 56898 0.0 0.1 228212 3120 ? S 21:47 0:00 /usr/sbin/httpd -DFOREGROUNDroot 56966 0.0 0.0 112644 948 pts/0 R 21:47 0:00 grep --colorauto httpd[rootyoung ~]# kill -1 56893 #让httpd重读其配置文件2.killall命令按命令名字发送信号。格式killall [-SIGNAL] COMMAND实例[rootyoung ~]# killall -15 httpd[rootyoung ~]# ps aux|grep httpdroot 61513 0.0 0.0 112644 952 pts/0 R 21:55 0:00 grep --colorauto httpd[rootyoung ~]#3.pkill命令pkill 和killall 应用方法差不多也是直接杀死运行中的程序如果您想杀掉单个进程请用kill 来杀掉。格式pkill [options] pattern常用选项-SIGNAL-u uid: effective user生效者-U uid: real user真正发起运行命令者-t terminal: 与指定终端相关的进程-P pid: 显示父进程为此处指定的进程的进程列表实例[rootyoung ~]# pkill httpd[rootCentOS ~]# pkill -U apache二、Linux作业控制1.系统job作业(1)job种类前台作业(foregroud)通过终端启动且启动后会一直占据终端后台作业(backgroud)可以通过终端启动但启动后即转入后台运行(释放终端)(2)让作业运行于后台1) 运行中的作业Ctrlz送往后台后作业会转为停止态相当于发送kill -19信号2) 尚未启动的作业# COMMAND 此类作业虽然被送往后台但其依然与终端相关如果希望把送往后台的作业剥离与终端的关系# nohup COMMAND 实例[rootCentOS ~]# nohup yes [1] 8444[rootCentOS ~]# nohup: ignoring input and appending output to nohup.out(3)查看所有的作业#jobs命令实例[rootyoung ~]# jobs -l # -l选项显示进程PID[1] 23602 Running nohup yes /- 表示优先级当调用时不加作业号会默认调用的命令[rootyoung ~]# jobs -l[1] 79973 Running sleep 100 [2] 80066 Running sleep 200 [3]- 80255 Running sleep 300 [4] 80414 Running sleep 400 [rootyoung ~]# fgsleep 400(4)可实现作业控制的常用命令#fg [[%]JOB_NUM]把指定的作业调回前台#bg [[%]JOB_NUM]让送往后台的作业在后台继续运行#kill %JOB_NUM终止指定的作业实例[rootyoung ~]# sleep 100 [1] 72535[rootyoung ~]# fg 1sleep 100^Z #crtlz放到后台挂起[1] Stopped sleep 100[rootyoung ~]# jobs -l[1] 72535 Stopped sleep 100[rootyoung ~]# bg %1[1] sleep 100 [rootyoung ~]# jobs[1] Running sleep 100 [rootyoung ~]# kill %1[rootyoung ~]# jobs[1] Terminated sleep 100小贴士同时运行多个进程方法(提高效率)1)vi all.shf1.shf2.shf3.sh2)(f1.sh);(f2.sh);(f3.sh)3){ f1.sh f2.sh f3.sh }三、进程优先级调整nice, renice静态优先级100-139进程默认启动时的nice值为0优先级为120只有root用户才能降低nice值(提高优先性)普通用户只能提高自己的nice值(降低优先级)一般使用者仅可调整自己程序的 Nice 值且范围仅为 0 ~ 19 (避免一般用户抢占系统资源)nice调整范围: -20, 19注值越低优先级越高(1) 以指定的nice值启动一个进程nice -n # COMMAND实例[rootyoung ~]# nice -n -16 top[rootyoung ~]# ps axo ni,comm|grep top-16 top(2) 调整运行中的进程的nice值renice -n # PID实例[rootyoung ~]# renice -n 10 8982289822 (process ID) old priority -16, new priority 10[rootyoung ~]# ps axo ni,comm|grep top10 top注意普通用户仅有权限调大nice值