Jump to content

System/Exec/`` Problem


moejoe22

Recommended Posts

I am trying to get php to send a signal to a concurrently running c/c++ program. I have tried several ways of attempting this but every time the php route fails.

 

I can from terminal send the appropriate signal and the c/c++ program(s) will acknowledge receiving the signal (I have custom handlers written for them) but when I try through php it does nothing.

 

Here's an example of some of the things I've tried:

 

    $y = `./sendsig`;

    system("./sendsig", $x);

    system("./sikil", $z); 

    exec("./sendsig");

 

sendsig is a shell script I wrote that when run from terminal sends the right signal to the c/c++ prog and the program acknowledges the signal.

 

    $y = `./siint`;

    system("./siint", $x);

    system("./siint", $z); 

    exec("./"siint);

 

siint is another c program that I wrote that sends the right signal to the c/c++ program and it acknowledges the signal being received (only when I run siint from terminal.. from php it blunders).

 

    $pid = `pgrep ex`; // this line doesn't work atm so I have $pid set by hand to the process of the c/c++ program

    $y = `kill -10 $pid`;

    system("kill -10 $pid", $x);

    exec("./sendsig");

 

Is the direct route I tried getting php to send the signal itself, and that didn't work at all.

 

Does anyone have any ideas? I'm running out of options to get php to send a signal to a program.

Link to comment
https://forums.phpfreaks.com/topic/135862-systemexec-problem/
Share on other sites

exec should work as long as you are using the full correct path.

exec('/path/program', $output);

 

Also has your CLI program got the appropriate permissions for php to execute it?

 

If you are on a shared host then they may have disabled the use of exec().

Link to comment
https://forums.phpfreaks.com/topic/135862-systemexec-problem/#findComment-709513
Share on other sites

Yes, I can use system, exec to run simple commands like echo or execute simple scripts. I think the problem is that the c/c++ program has different ownership while the php has ownership of apache.. I don't know how to get apache to send a signal to a program that it doesn't own.

Link to comment
https://forums.phpfreaks.com/topic/135862-systemexec-problem/#findComment-710115
Share on other sites

Are the shell scripts really in the same folder as your PHP script?  You have ./ in front of the path, which would mean that it HAS to be in the same folder or deeper.  If it's in like, ~/bin, then use a full path or hope that you have nothing else with the same name in your PATH.

Link to comment
https://forums.phpfreaks.com/topic/135862-systemexec-problem/#findComment-710118
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.