DaT*_*omB 3 linux shell syslog
任何人都可以解释以下代码行的作用
/bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true
Run Code Online (Sandbox Code Playgroud)
它与它有何不同?
test -f /var/run/syslogd.pid && kill -HUP `cat /var/run/syslogd.pid`
Run Code Online (Sandbox Code Playgroud)
[我知道它应该重启syslogd,但两者之间有区别吗?有点Linux的菜鸟,对不起]
/bin/kill -HUP <PID>- 将SIGHUP信号发送到由<PID>(进程标识符)标识的进程.将此信号发送给deamons(或服务,如果您愿意)通常会指示他们重新读取(再次读取)其配置cat /var/run/syslogd.pid 2> /dev/null-读取/var/run/syslogd.pid文件(包含PID的的syslogd的守护程序),并将其打印到标准输出(文件描述符= 0(零)).它的2> /dev/null一部分重定向标准错误流(文件描述符= 2(二))/dev/null以丢弃读取时发生的所有错误消息/var/run/syslogd.pidtest -f /var/run/syslogd.pid- 测试文件是否/var/run/syslogd.pid存在.如果它存在(通常)意味着守护进程(在本例中为syslogd)已启动并正在运行.总结一下:
/dev/null是一个特殊的设备文件,丢弃(忽略)写入它的所有内容(如无底洞).有时用于丢弃错误消息(如您的情况).