Jump to content

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

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • 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.