执行步骤

    在Unix和Windows系统平台上,指令/脚本的执行方式相近

    • Zabbix (父进程)创建了一个交流通道。

    • Zabbix将通道设置为将要被创建的子进程的输出接口

    • Zabbix创建子进程(运行指令/脚本)

    • Zabbix读取通道信息直到超时或者没有人写到另一端(所有的句柄/文件描述符都已关闭)。注意,子进程在退出或关闭句柄/文件描述符之前可以创建更多的进程并退出。

    • 如果没有达到超时,Zabbix将等待直到初始子进程退出或超时

    • 此时将假定一切都已完成,整个进程树(即进程组或作业)已被被终止

    步骤5-8不要引用远程指令,因为它们是用“nowait” 字符执行的。步骤7不要引用Zabbix agent执行的自定义脚本。

    Zabbix假设指令/脚本在初始子进程退出时完成了进程,并且没有其他进程让输出句柄/文件描述符处于打开状态。当进程结束时,所有创建的进程都将被终止。

    所有指令中的双引号和反斜杠都以反斜杠相间隔,指令要用双引号括起来。

    退出代码的检查

    对执行指令/脚本的退出代码检查的操作具备以下条件:

    • 脚本的退出代码、远程指令、用户参数以及Zabbix agent items system.run(不带“nowait”字符)和system.hw.devices

    • 为Zabbix服务器上的远程指令创建了额外的日志条目以保存脚本的执行输出

    可能出现的失败指令/脚本的前端信息和日志条目:

    • 执行失败的标准错误和标准输出的内容(如果有的话)

    • “进程退出代码:N”(输出为空,退出代码不为0)

    • “信号终止信号:N”(进程被信号终止,只适用于Linux系统)


    了解更多关于, 远程指令, .