为什么xinetd无法运行shell服务

时间:2013-04-22 14:05:38

标签: shell format xinetd

伙计们,我在使用xinetd时遇到问题,错误信息是'xinetd [20126]:execv(/home/fulu/download/mysqlchk_status2.sh)失败:执行格式错误(错误= 8)'

  1. 系统操作是:CentOS版本6.2;
  2. 我通过命令'sudo yum install xinetd'
  3. 安装了xinetd
  4. 我编辑了/ etc / services,为我的名为'mysqlchk'的服务添加了我的端口6033
  5. /etc/xinetd.d/mysqlchk中的服务'mysqlchk'是

    服务mysqlchk {         禁用=否         flags = REUSE         socket_type = stream         port = 6033         等=不         user = fulu         server = /home/fulu/download/mysqlchk_status2.sh         log_on_failure + = USERID }

  6. shell文件/home/fulu/download/mysqlchk_status2.sh内容是

    echo'test'

  7. 6.i可以直接运行命令/home/fulu/download/mysqlchk_status2.sh并获得结果'test'

    1. 当我telnet 127.0.0.1 6033时,我得到了输出

      尝试127.0.0.1 ... 连接到127.0.0.1。 逃脱角色是'^]'。 连接由外国主机关闭。

    2. 然后我尾随日志文件/ var / log / messages,它显示

      Apr 22 22:01:47 AY1304111122016 xinetd[20001]: START: mysqlchk pid=20126 from=127.0.0.1
      Apr 22 22:01:47 AY1304111122016 xinetd[20126]: execv( /home/fulu/download/mysqlchk_status2.sh ) failed: Exec format error (errno = 8)
      Apr 22 22:01:47 AY1304111122016 xinetd[20001]: EXIT: mysqlchk status=0 pid=20126 duration=0(sec)
      

      我不知道为什么,有人可以帮助我吗?

1 个答案:

答案 0 :(得分:2)

对不起,经过质疑,我突然找到了答案。如果你想在其他程序中运行shell,你需要在shell文件的第一行添加'#!/ bin / echo'(当然可以改变echo)