exec, pid killen onder een andere gebruiker.
David Bekker
11/03/2012 11:39:35Hoi,
Ik ben sinds gister bezig om proberen om een PID uit een bestand te killen op centos. Dit doe ik door middel van de volgende code.
Nu kwam ik net achter dat apache natuurlijk onder een eigen account "apache" uitgevoerd wordt en de eggdrop (wat ik probeer te killen) wordt uitgevoerd onder het account "david" waardoor apache niet het recht heeft om dit process te killen. Hoe kan ik dit omzeilen met php? Ik heb geen root rechten dus met chown kan ik niks..
David,
Ik ben sinds gister bezig om proberen om een PID uit een bestand te killen op centos. Dit doe ik door middel van de volgende code.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$pidfile = "/home/david/nieuwsbot/pid.Nieuwsbot"; // Het PID file, als het programma niet actief is dan bestaat dit file niet
if(file_exists($pidfile))
{
$pid = file_get_contents($pidfile); // pid ophalen.
echo "Eggdrop is running at this moment, we will kill the process of the eggdrop and start it again. This can take up to 5 minuts..<br/>";
echo "Killing pid " . $pid . "<br />";
exec("kill -9 " . $pid . " > /home/david/domains/dbekker.nl/public_html/nieuwsbot/process.out 2> /home/david/domains/dbekker.nl/public_html/nieuwsbot/process.err"); // hier killen we dus de PID
echo "<br />Waiting for cronjob to start eggdrop again, this will happen within 5 minuts.. You can close this page now :) <br />"; // en een cronjob moet het process weer starten, maar de cronjob werkt prima enzo. Alleen ik kan hem niet killen.
}
else
{
echo "Eggdrop is not running now, it will start within 5 minuts. <br />";
}
?>
$pidfile = "/home/david/nieuwsbot/pid.Nieuwsbot"; // Het PID file, als het programma niet actief is dan bestaat dit file niet
if(file_exists($pidfile))
{
$pid = file_get_contents($pidfile); // pid ophalen.
echo "Eggdrop is running at this moment, we will kill the process of the eggdrop and start it again. This can take up to 5 minuts..<br/>";
echo "Killing pid " . $pid . "<br />";
exec("kill -9 " . $pid . " > /home/david/domains/dbekker.nl/public_html/nieuwsbot/process.out 2> /home/david/domains/dbekker.nl/public_html/nieuwsbot/process.err"); // hier killen we dus de PID
echo "<br />Waiting for cronjob to start eggdrop again, this will happen within 5 minuts.. You can close this page now :) <br />"; // en een cronjob moet het process weer starten, maar de cronjob werkt prima enzo. Alleen ik kan hem niet killen.
}
else
{
echo "Eggdrop is not running now, it will start within 5 minuts. <br />";
}
?>
Nu kwam ik net achter dat apache natuurlijk onder een eigen account "apache" uitgevoerd wordt en de eggdrop (wat ik probeer te killen) wordt uitgevoerd onder het account "david" waardoor apache niet het recht heeft om dit process te killen. Hoe kan ik dit omzeilen met php? Ik heb geen root rechten dus met chown kan ik niks..
David,
PHP hulp
21/12/2024 16:08:37- SanThe -
11/03/2012 11:49:05David Bekker op 11/03/2012 11:39:35:
Hoe kan ik dit omzeilen met php? Ik heb geen root rechten dus met chown kan ik niks..
Dat gaat niet.
Toevoeging op 11/03/2012 11:50:27:
Of je zal dat programma onder user=apache moeten runnen.