systemd、sigh、awk练习

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

[root@localhost ~]# journalctl -o verbose
-- Logs begin at Sat 2019-08-10 09:31:40 CST, end at Sun 2019-08-11 09:20:56 CST. --
Sat 2019-08-10 09:31:40.536676 CST [s=ddc9aba16ee24df6a2c0dd50494b5dbf;i=1;b=8ef8d5e41fa54dbc9586fc1554
    PRIORITY=6
    _TRANSPORT=driver
    MESSAGE=Runtime journal is using 6.0M (max allowed 48.6M, trying to leave 72.9M free of 480.1M avai
    MESSAGE_ID=ec387f577b844b8fa948f33cad9a75e6
    _PID=105
    _UID=0
    _GID=0
    _COMM=systemd-journal
    _EXE=/usr/lib/systemd/systemd-journald
    _CMDLINE=/usr/lib/systemd/systemd-journald
    _CAP_EFFECTIVE=5402800cf
    _SYSTEMD_CGROUP=/system.slice/systemd-journald.service
    _SYSTEMD_UNIT=systemd-journald.service
    _SYSTEMD_SLICE=system.slice
    _BOOT_ID=8ef8d5e41fa54dbc9586fc15545614d4
    _MACHINE_ID=c167927a96f4488e86d53f0a2ce80b6b
    _HOSTNAME=localhost.localdomain
Sat 2019-08-10 09:31:40.536729 CST [s=ddc9aba16ee24df6a2c0dd50494b5dbf;i=2;b=8ef8d5e41fa54dbc9586fc1554
    PRIORITY=6
    _BOOT_ID=8ef8d5e41fa54dbc9586fc15545614d4
    _MACHINE_ID=c167927a96f4488e86d53f0a2ce80b6b
    _HOSTNAME=localhost.localdomain
    _SOURCE_MONOTONIC_TIMESTAMP=0
    _TRANSPORT=kernel
    SYSLOG_FACILITY=0
    SYSLOG_IDENTIFIER=kernel
    MESSAGE=Initializing cgroup subsys cpuset

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

[Unit]                                            //通用选项
Description=nginx web server                                              //描述信息
After=network.target remote-fs.target nss-lookup.target      //在这些服务启动后启动
[Service]
Type=forking                   //表示后面定义的ExecStart的主进程生成的其中一个子进程将被提升成 为主进程,启动完成后,旧的主进程会退出。
PIDFile=/usr/local/nginx/logs/nginx.pid      //它表示pid文件的所在位置
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf          //Nginx的启动命令
ExecReload=/usr/sbin/nginx -s reload      //定义Nginx的重新加载配置文件等
ExecStop=/usr/sbin/nginx -s stop
[Install]
WantedBy=multi-user.target      //定义了服务启动或禁用时的一些选项

3、SIGHUP、SIGQUIT、SIGTERM、SIGINTERRUPT的区别

  1. SIGQUIT:
    在POSIX兼容的平台,SIGQUIT是其控制终端发送到进程,当用户请求的过程中执行核心转储的信号。 SIGQUIT通常可以ctrl+ \。在Linux上,人们还可以使用Ctrl-4或虚拟控制台,SysRq yek。

  2. SIGTERM:
    SIGTERM是杀或的killall命令发送到进程默认的信号。它会导致一过程的终止,但是SIGKILL信号不同,它可以被捕获和解释(或忽略)的过程。因此,SIGTERM类似于问一个进程终止可好,让清理文件和关闭。因为这个原因,许多Unix系统关机期间,初始化问题SIGTERM到所有非必要的断电过程中,等待几秒钟,然后发出SIGKILL强行终止仍然存在任何这样的过程。

  3. SIGINT:
    符合POSIX平台,信号情报是由它的控制终端,当用户希望中断该过程发送到处理的信号。通常ctrl-C,但在某些系统上,“删除”字符或“break”键 - 当进程的控制终端的用户按下中断正在运行的进程的关键SIGINT被发送。

  4. SIGKILL:
    上符合POSIX平台上,SIGKILL是发送到处理的信号以使其立即终止。当发送到程序,SIGKILL使其立即终止。在对比SIGTERM和SIGINT,这个信号不能被捕获或忽略,并且在接收过程中不能执行任何清理在接收到该信号。

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

[root@localhost ~]# netstat -tan | awk '/^tcp/{state[$NF]++}END{print "TIME_WAIT" " " state["TIME_WAIT"]};'
TIME_WAIT 1000

你可能感兴趣的:(systemd、sigh、awk练习)