[perl] KILL commando

Pagina: 1
Acties:

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Ik probeer een Signal te geven naar een bepaalde PID in linux, maar ik krijg het niet voor mekaar. Dit is de code die ik heb gemaakt.

code:
1
2
3
4
5
6
7
#!/usr/bin/perl
open(filehandle, "/var/shoutcast/dsp/sc_trans_linux.pid");
$pid = <filehandle>;
close(filehandle);
open(sfh, "kill -SIGWINCH $pid");
print "Content-type: text/html\n\n";
print "Track skipped";


Het script opent het bestand sc_trans_linux.pd waarin het zich het process nummer bevind. Dan execute ik het "kill" commando met de signal -SIGWINCH naar $pid.

Op 1 of andere manier krijg ik iederekeer premature end of script headers. (Script geschreven in VIM, dus geen kans op DOS line feeds of iets.)

  • zeroxcool
  • Registratie: Januari 2001
  • Laatst online: 22-05 14:17
Perl:
1
2
3
4
5
6
7
#!/usr/bin/perl
open(filehandle, "/var/shoutcast/dsp/sc_trans_linux.pid");
$pid = <filehandle>;
close(filehandle);
system("kill -SIGWINCH $pid");
print "Content-type: text/html\n\n";
print "Track skipped";


Zo misschien?

zeroxcool.net - curity.eu


  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 21-02 23:50
En nog wat standaard debugging, is het proces wel van de webserver?

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
ZeRoXcOoL schreef op 30 december 2003 @ 15:47:
Perl:
1
2
3
4
5
6
7
#!/usr/bin/perl
open(filehandle, "/var/shoutcast/dsp/sc_trans_linux.pid");
$pid = <filehandle>;
close(filehandle);
system("kill -SIGWINCH $pid");
print "Content-type: text/html\n\n";
print "Track skipped";


Zo misschien?
Sorry, mag ook niet baten.

En wat bedoel je dat het process van de webserver meot zijn? Het is een process wat door de init wordt opgestart, en die ik later wil besturen.

  • Spider.007
  • Registratie: December 2000
  • Niet online

Spider.007

* Tetragrammaton

Je moet uiteraard rechten hebben om dit process een kill signal te sturen :) Werkt dit commando wel als je su'd naar de webserver eigenaar en dan dit commando uitvoert?

---
Prozium - The great nepenthe. Opiate of our masses. Glue of our great society. Salve and salvation, it has delivered us from pathos, from sorrow, the deepest chasms of melancholy and hate


  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Ahh tuurlijk...

De apache gebruiker moet rechten hebben om het kill signal te mogen versturen. Kweet alleen niet zo goed waar ik dit zou moeten doen...???

De premature script header fouten ben ik overigens nu kwijt door het schript Public Read Wrie Execute te geven.

  • BasXcore
  • Registratie: April 2002
  • Laatst online: 17-11-2025
Met het volgende script maak ik gebruik van het kill process van PERL zelf.

code:
1
2
3
4
5
6
7
8
#!/usr/bin/perl
open(filehandle, "/var/shoutcast/dsp/sc_trans_linux.pid");
$pid = <filehandle>;
close(filehandle);
kill SIGWINCH => $pid;
print "Content-type: text/html\n\n";
print $pid;
print "Track skipped";


Dit werk perfect als ik het als root uitvoer. Maar niet als de webserver/apache gebruiker. Ik weet niet welke rechten ik hiervoor moet zetten, ik weet niet of iemand me hiermee kan helpen?

  • igmar
  • Registratie: April 2000
  • Laatst online: 12-05 15:46

igmar

ISO20022

BasXcore schreef op 30 december 2003 @ 16:47:
Met het volgende script maak ik gebruik van het kill process van PERL zelf.

Dit werk perfect als ik het als root uitvoer. Maar niet als de webserver/apache gebruiker. Ik weet niet welke rechten ik hiervoor moet zetten, ik weet niet of iemand me hiermee kan helpen?
Ga om te beginnen eens op zoek naar info betreft signals en hun permissies. Zie voor een mogelijke oplossing suidperl.

[ Voor 7% gewijzigd door igmar op 30-12-2003 17:16 ]


  • Shadowman
  • Registratie: Januari 2002
  • Niet online
voor het killen van een proces moet je gelijke uid hebben als het proces of root uid.
Daarvoor kun je het beste het proces starten met de webserver/apache-gebruiker eventueel via een script dat zichzelf naar het uid van de webserver zet.

http://www.perlhelp.com/setuid_help.html
Pagina: 1