Script som startar/stannar processer i Linux

Permalänk
Medlem

Script som startar/stannar processer i Linux

Hej..
Någon som vet ett script som kan starta/stänga ner processer (mha PID) under Linux?
Tex.. om jag har vsftpd på min linux server... och har en hemsida på samma dator..
Så skulle jag vilja stänga av/starta ftpservern via hemsidan..
Skulle detta gå?

Eller är det omöjligt i teorin?

Mvh //Magnus

Visa signatur

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Permalänk
Medlem

Nja inget svårt, de mest en fråga om rättigheter.

i PHP kan man använda system() för att köra olika kommando.

Permalänk
Medlem

Du skulle inte vilja utveckla det där?
Ska läsa lite på php.net om funktionen..

Men du får gärna skriva hur man använder det..

Mvh //Magnus

Visa signatur

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Permalänk
Medlem

använd 'ps PID' för att döda en process.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nystan
använd 'ps PID' för att döda en process.

Jag är fullständigt övertygad om att 'kill' är mycket bättre för endamålet.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nillon
Jag är fullständigt övertygad om att 'kill' är mycket bättre för endamålet.

Jag är fullständigt, otroligt, komplett och helt fascinerande övertygad om att jag håller med

Visa signatur

Kör väl en klassisk signatur:
9900K @ 5GHz/128GB 3200MHz DDR4/3x1TB NVME/6800XT på Aorus Z390 Elite
Samsung C34F791, Svive 34C801, Xiaomi 34", Logitech MX Master 3 + G512...
Behöver för jobb, ej gamer.

Permalänk
Medlem

kan inte webmin göra något sånt.

Visa signatur

8D

Permalänk
Medlem

system("kill PID");

? fungerar för mig...

Dock har jag safe_mode nu så jag måste köra med popen();

Exempel:

function pidkill($pid) { $handle = popen("kill " . $pid, "r"); usleep(100000); $read = fread($handle, 2096); return $read; } // döda ngt $svar = pidkill(1059); echo $svar;

// Richard

Permalänk
Medlem

Hur skulle jag skriva om jag skulle vilja starta en process då?

//Magnus

Visa signatur

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se

Permalänk
Medlem

Men apache/php kommer inte få starta/döda en process (eller jo, fast den kommer köras som nobody)

bättre att scripta en tjänst som sköter processerna, detta är dock en mer applikations-utvecklings grej. jag gjorde en likande för ett tag sen dock för att styra en proftpd.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av nillon
Jag är fullständigt övertygad om att 'kill' är mycket bättre för endamålet.

Ojdå Självklart menar jag "kill PID"

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av maDa
Men apache/php kommer inte få starta/döda en process (eller jo, fast den kommer köras som nobody)

bättre att scripta en tjänst som sköter processerna, detta är dock en mer applikations-utvecklings grej. jag gjorde en likande för ett tag sen dock för att styra en proftpd.

Om man startar processen med apache kommer väl processen köras som www-data?
Och då har apache även rättighet att döda den väl? Eller har jag helt fel nu :/

Men om processen är startad av root så går det nog inte att döda med ett php script...
Och om en process körs av "nobody" ... då k an väl vem som hellst döda den?

Sen angående starta en process:

function shell($str) { $handle = popen($str, "r"); usleep(100000); $read = fread($handle, 2096); return $read; } // Kör komanndo $svar = shell("ls /home"); echo $svar;

Exemplet kommer förhoppningsvis att lista mapparna i /home
Sen är det bara ersätta shell("ls /home"); med ett eget kommando till funktionen... ex:

// döda apache? $svar = shell("apache2 stop");

//Richard

Permalänk
Citat:

Ursprungligen inskrivet av Unreality_88
Om man startar processen med apache kommer väl processen köras som www-data?
Och då har apache även rättighet att döda den väl? Eller har jag helt fel nu :/

Visst, det torde gå att starta processer som apache-användaren, men det är ju knappast något du kommer att ha nytta av, då du inte kommer att få binda till portar under 1024 i vilket fall.

W

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av WorldSpawn
Visst, det torde gå att starta processer som apache-användaren, men det är ju knappast något du kommer att ha nytta av, då du inte kommer att få binda till portar under 1024 i vilket fall.

W

Varför kommer man inte få det ? Förklara gärna
Hur annars ska man kunna starta en process som en annan användare GENOM apache/php ?

Är ju en annan sak kanske om man loggar in som root och kör

./phplibdir/php -f /var/www/mittscript.php

eftersom php scriptet inte då kommer köras som apache (ingen koppling till apache alls) och istället som användaren root?
Kan den då binda portar över 1024?
// Richard

Permalänk
Citat:

Ursprungligen inskrivet av Unreality_88
Varför kommer man inte få det ? Förklara gärna

Därför att endast root får det. Alla deamons som ligger på portar under 1024 startar alltså med rootbehörighet, vilken de sedan kan avsäga sig själva, när de har bindat till porten och gjort de övriga saker som kräver högre behörighet. Typ. Rätta mig om jag har fel här, någon.

Ett alternativ är ju att starta processerna som någon annan användare, och binda dom till portar högre än 1024, och sen istället använda iptables-regler för att knyta den höga porten till den låga. Typ Apache på 8080, och en iptables-regel som redirectar 8080 till 80. Känns som en kludge.. :-/

W

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Unreality_88
Om man startar processen med apache kommer väl processen köras som www-data?
Och då har apache även rättighet att döda den väl? Eller har jag helt fel nu :/

Men om processen är startad av root så går det nog inte att döda med ett php script...
Och om en process körs av "nobody" ... då k an väl vem som hellst döda den?

En användare (inklusive nobody) kan bara döda sina egna processer, bara root kan döda andras processer.

Visa signatur

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Permalänk
Medlem

Ett tips är att använda sudo för detta.

Permalänk
Medlem

Ok, låter vettigt allting

Permalänk
Medlem

Hur skulle sudo fungera i min lösning?

//Magnus

Visa signatur

#1: Intel i7-2600K | 8GB RAM | 780 GTX Ti | 8x Samsung EVO raid-10 LSI 9271-8i
#2: Dell XPS 1330
http://www.excellent-servers.se - http://www.excellent-hosting.se