进程间通信
## 查看所有信号
$ kill -l
## SIGINT 通知前台进程组终止进程ctrl+c
## SIGKILL 立即结束程序,不能被阻塞和处理
$ kill-9 pid
守护进程
使用nohup与&符号配合运行一个命令
nohup命令使进程忽略hangup(挂起)信号守护进程(daemon)和一般进程有什么差别呢?
nohup
参考:nohup命令
nohup命令可以将程序以忽略挂起信号的方式运行起来,被运行的程序的输出信息将不会显示到终端。
无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。如果当前目录的 nohup.out 文件不可写,输出重定向到$HOME/nohup.out文件中
## 如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件
## nohup 执行后 进程转入后台 前台只返回 进程id
$ nohup tail -f sys.log &
# 结果: [1] 27451
## 关闭 tail -f sys.log所在的执行终端,tail -f sys.log进程依然存活 父进程变为 1,结果输入到nohup.out文件内,在/proc/进程id/ 下## 可以查看进程的先关信息
screen
参考 screen命令
使用screen命令
- screen进入screen环境
- ctrl+ad 退出(detached)screen 环境
- screen-ls查看screen的会话
- screen-r sessionid 恢复会话
在每个screen session 下,所有命令都以 ctrl+a(C-a) 开始
## 安装screen
$ yum install screen
## 进入screen环境
$ screen
## 执行一个命令 (使用ctrl+A+D 暂时离开当前session,执行的命令转入后台运行 )
$ tail -f /home/sh/sys.log
# 结果: [detached from 26652.pts-5.VM_0_4_centos]
## 列出当前所有的session
$ screen -ls
## screen -r [sessionid] 恢复screen 中的[sessionid]会话
$ screen -r 26652
## secure 安全日志
$ tail -f secure
## 系统常规日志
$ tail -f messages
## 内核运行的相关信息(一般在系统刚启动时的日志)
$ tail -dmesg
## cron 计划任务日志
$ tail -cron
服务器管理工具 systemctl
参考:systemctl命令
常见服务管理工具 service (centos6) 、systemctl(centos7)
systemctl命令是系统服务管理器指令,它实际上将 service 和 chkconfig 这两个命令组合到一起。
## 启动nfs服务
$ systemctl start nfs-server.service
## 重启nfs服务
$ systemctl start nfs-server.service
## 停止nfs服务
$ systemctl stopnfs-server.service
## 设置为开机自启
$ systemctl enable nfs-server.service
## 停止开机自启动
$ systemctl disable nfs-server.service
## 查看服务状态
$ systemctl status nfs-server.service
## 查看所有已启动的服务
$ systemctl list -units --type=service
## 彻底关闭防火墙:
$ sudo systemctl status firewalld.service
$ sudo systemctl stop firewalld.service
$ sudo systemctl disable firewalld.service