第八周

作者: xinxin2019 | 来源:发表于2019-05-13 09:18 被阅读0次

1、systemd查看日志文件有隐藏该如何处理?

systemd统一管理所有Unit的启动日志,包含内核日志和应用日志。在默认情况下,systemd日志保存于/run/log/journal中,系统重启后会清除,这里面的日志文件是二进制形式保存的,不能直接用less等文本文件查看的方式查看内容。

可以使用下面这个命令来查看日志内容,由于一行可以显示很多内容,屏幕的列数可能无法显示完整,可以使用右方向键查看右边的内容。

/run/log/journal/6940ca707d204f6eb04c3cf1c799d9be/system.journal

less 是提示 "system.journal" may be a binary file. See it anyway? 是二进制文件

$ journalctl

日志文件还有更详细的信息,使用下面这个参数 显示隐藏字段

journalctl  -o verbose

-o 或 --output=STRING 来改变journal命令输出的模式,可选的模式有 (short, short-iso, short-precise, short-monotonic, verbose,export, json, json-pretty, json-sse, cat)

2、自己动手写一个systemd的配置文件, 让nginx服务可以开机启动

/usr/lib/systemd/system/nginx.service

[Unit]

Description=nginx - high performance web server

After=network.target remote-fs.target nss-lookup.target

[Service]

Type=forking

ExecStart=/usr/local/openresty/nginx/sbin/nginx -c /usr/local/openresty/nginx/conf/nginx.conf

ExecReload=/usr/local/openresty/nginx/sbin/nginx -s reload

ExecStop=/usr/local/openresty/nginx/sbin/nginx -s stop

[Install]

WantedBy=multi-user.target

systemctl daemon-reload

systemctl start nginx.service

systemctl enable nginx.service

3、SIGHUP(1)、SIGINT(2)、SIGQUIT(3)、SIGKILL(9)、SIGTERM(15)、SIGINTERRUPT的区别

[root@localhost 6940ca707d204f6eb04c3cf1c799d9be]# kill -l

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP

6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1

11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM

16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP

21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ

26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR

31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3

38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8

43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13

48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12

53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7

58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2

63) SIGRTMAX-1 64) SIGRTMAX

列表中,编号为1~31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32~63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区别在于前者不支持排队,可能会造成信号丢失,而后者不会。

1) SIGHUP

本信号在用户终端连接(正常或非正常)结束时发出, 通常是在终端的控制进程结束时, 通知同一session内的各个作业, 这时它们与控制终端不再关联。

登录Linux时,系统会分配给登录用户一个终端(Session)。在这个终端运行的所有程序,包括前台进程组和后台进程组,一般都属于这个Session。当用户退出Linux登录时,前台进程组和后台有对终端输出的进程将会收到SIGHUP信号。这个信号的默认操作为终止进程,因此前台进程组和后台有终端输出的进程就会中止。不过可以捕获这个信号,比如wget能捕获SIGHUP信号,并忽略它,这样就算退出了Linux登录,wget也能继续下载。

此外,对于与终端脱离关系的守护进程,这个信号用于通知它重新读取配置文件。

重写了 apache 配置文件,想不重起 apache 就让配置生效,可以往 apache 进程发一个 HUP 信号

2) SIGINT

程序终止(interrupt)信号, 在用户键入INTR字符(通常是Ctrl-C)时发出,用于通知前台进程组终止进程

3) SIGQUIT

和SIGINT类似, 但由QUIT字符(通常是Ctrl-\)来控制. 进程在因收到SIGQUIT退出时会产生core文件, 在这个意义上类似于一个程序错误信号。

9) SIGKILL

用来立即结束程序的运行. 本信号不能被阻塞、处理和忽略。如果管理员发现某个进程终止不了,可尝试发送这个信号。

15) SIGTERM

程序结束(terminate)信号, 与SIGKILL不同的是该信号可以被阻塞和处理。通常用来要求程序自己正常退出,shell命令kill缺省产生这个信号。如果进程终止不了,我们才会尝试SIGKILL。

在以上列出的信号中,程序不可捕获、阻塞或忽略的信号有:SIGKILL,SIGSTOP

SIGINTERRUPT:允许信号中断系统调用

4、用awk查看tcp连接处于TIMEOUT的连接个数

netstat -an |awk 'BEGIN{sum=0} /^tcp\>/{if($NF=="TIMEOUT")sum++} END{print sum}'

相关文章

网友评论

      本文标题:第八周

      本文链接:https://www.haomeiwen.com/subject/gkikaqtx.html