How can I run shell command without getting return?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • ¹é¿ø¼®

    How can I run shell command without getting return?

    Hello, everybody.

    I want to call any shell command from php script using shell_exec(). The
    problem is that the next line of the php script would not be run until a few
    minutes after running the shell command.
    I found the shell command couldn't be run at background mode. It seemed that
    the shell_exec() function waits a return from the command. Because the
    command doesn't return, the shell_exec() waits until timeout reached. Using
    the '&' at the end of the command doesn't work expected.
    So I want to know how can I run any non-background mode shell command from
    php script without waiting return.
    I'll look forward to any answer.
    Thanks in advance.


  • David Haynes

    #2
    Re: How can I run shell command without getting return?

    ¹é¿ø¼® wrote:[color=blue]
    > Hello, everybody.
    >
    > I want to call any shell command from php script using shell_exec(). The
    > problem is that the next line of the php script would not be run until a few
    > minutes after running the shell command.
    > I found the shell command couldn't be run at background mode. It seemed that
    > the shell_exec() function waits a return from the command. Because the
    > command doesn't return, the shell_exec() waits until timeout reached. Using
    > the '&' at the end of the command doesn't work expected.
    > So I want to know how can I run any non-background mode shell command from
    > php script without waiting return.
    > I'll look forward to any answer.
    > Thanks in advance.
    >
    >[/color]
    If nothing else, you could probably do a shell wrapper to background it.
    e.g.

    #!/bin/bash
    nohup foo &

    -david-

    Comment

    • tihu

      #3
      Re: How can I run shell command without getting return?

      Hello

      The proc_open or popen functions may be used.

      If you use one of these funtions then your script will not wait for the
      shell command to exit and will immediately carry on running your
      script.

      Popen is easier to use but proc_open is more powerful,

      Execute a command and open file pointers for input/output



      Tim

      Comment

      Working...