Linux 理解syslogd

Linux 理解syslogd,linux,shell,syslog,Linux,Shell,Syslog,有人能解释一下下面这行代码的作用吗 /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true 它与其他的有什么不同 test -f /var/run/syslogd.pid && kill -HUP `cat /var/run/syslogd.pid` [我知道它应该重新启动syslogd,但是这两个?linux noob的位之间有区别吗,对不起]第二个命令用于检查名为/

有人能解释一下下面这行代码的作用吗

/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
它与其他的有什么不同

test -f /var/run/syslogd.pid && kill -HUP `cat /var/run/syslogd.pid`

[我知道它应该重新启动syslogd,但是这两个?linux noob的位之间有区别吗,对不起]

第二个命令用于检查名为/var/run/syslog.pid的文件是否存在,该文件存储运行syslog服务的pid,该命令的第二部分将终止该进程

  • /bin/kill-HUP
    -向
    标识的进程发送SIGHUP信号(进程标识符)。将此信号发送给deamons(或服务,如果您愿意)通常会指示他们重新读取(再次读取)其配置
  • cat/var/run/syslogd.pid 2>/dev/null
    -读取
    /var/run/syslogd.pid
    文件(其中包含syslogd守护进程的pid),并将其打印到标准输出(文件描述符=
    0
    (零))。它的
    2>/dev/null
    部分将标准错误流(文件描述符=
    2
    (两个))重定向到
    /dev/null
    ,以丢弃读取
    /var/run/syslogd.pid
    时发生的所有错误消息
  • test-f/var/run/syslogd.pid
    -测试文件
    /var/run/syslogd.pid
    是否存在。如果它存在,则(通常)意味着守护进程(在本例中是syslogd)已启动并正在运行
  • 总结如下:

  • 第一个命令意味着:发送SIGHUPsyslogd放弃所有错误消息,如果成功,则返回true
  • 第二个命令意味着:如果syslogd守护进程正在运行,则向其发送SIGHUP
  • /dev/null
    是一个特殊的设备文件,它丢弃(忽略)写入其中的所有内容(就像一口无底井)。有时用于丢弃错误消息(如此处的示例)