Automatsko ubijanje zalaufanih procesa
(1 korsinik/a gleda/ju temu) (1) Gost

Automatsko ubijanje zalaufanih procesa


07.06.2016 | 10:29
Obzirom da, nažalost, živim sa starcima od kojih onaj ženski dio hoće internet na svom računalu, a uzevši u obzir da nemam bežični router, to ga MBP uvjerljivo glumi s dijeljenjem žičnog interneta putem wifija. Obzirom da se majka budi rano, a obzirom da dijeljenje veze onemogućuje sleep, to MBP radi 24/7.

Moj problem je u tome što me usred noći probude ventilatori koji od miroljubivih 3000 RPM skoče na 6200 jer se neki procesi aktiviraju i ubijaju procesor: systemstats i runouc tek su neki od njih. Probudim se, force-quit i onda pokušavam zaspati.

Može li se pokrenuti nekakav program/skripta/automator koji bi radio 24/7 (na Mavericksu sam) i osluškivao je li neki od tih procesa prešao X% zauzeća procesora te ga onda force-quit-ao? To bi mi bitno olakšalo san.
07.06.2016 | 11:03
Meni to zvuči kao borba s posljedicom, umjesto s uzrokom problema. Odseli od roditelja!
Šala, naravno! Daj za probu pokušaj na tom wifiju isključiti enkripciju skroz, na jednu noć, čisto da vidiš da li se i dalje događa isti problem.

Za AppleScript, taj komad koda koji provjerava opterećenje bi mogao ovako nekako izgledati:
try
get paragraphs of (do shell script "ps -clx")
tell (the result as text) to set {CPU, PID} to {fifth word, second word}
(ovdje bi trebalo pozvati shell s komandom kill -9 iza koje ide PID kojeg si pokupio prije, ali nemam se vremena sad igrati, možda naiđe Đipi, on to ima u malom prstu... :) )
on error errmess
-- display dialog errmess
end try
07.06.2016 | 14:55
Nabavi router. Jeftini su. Zasto ne kupis jedan?
Bas gledam, po 100kn su.
07.06.2016 | 15:13
Čovjek ima nerazriješene emotivne sukobe sa svojim roditeljima pa ih kažnjava tako što nemaju interneta kad on odnese laptop sa sobom.
07.06.2016 | 16:35
Da stvarno voli starce, svakom bi kupio rMBP
07.06.2016 | 17:42
E sad za mail i internet!
Mojima je dobar i onaj Lenovo koji je Konzum prodavao.
07.06.2016 | 18:15
Moja stara koristi ovo i ne odustaje:
07.06.2016 | 19:27
Otporno na viruse!
07.06.2016 | 21:19
Eh... Kako ono ide ona židovska kletva: "dabogda imao pa nemao"? Živio sam sam, u više navrata, ali silom prilika prisiljen sam na suživot.

Testirat ću svašta od ponuđenog, al router ne kupujem! The line must be drawn here, this far, no further!!

Inače, mama još uvijek ima onaj iMac G3, upalimo ga par puta godišnje čisto da vidimo jel radi
07.06.2016 | 21:28
Teško da je AppleScript sretno rješenje za ovaj slučaj jer idle loop u njemu troši ~10% procesora, a dok obavi sve što treba za riješiti aktualni problem skočit će i preko 100% (ako postoji više od jednog procesora). U tom smislu podržavam prijedlog hardverskog rješenja - za softverski bi bila primjerenija "čista" terminalska skripta koja se aktivira u željenim razmacima ili neki alat poput monita.

Potencijalni AppleScript mazohisti, na tragu kojim je Smayoo krenuo, mogu iskoristiti ovo u nastavku:

repeat
  
  set check_interval to 5
  set cpu_limit to 300
  
  set ps_out to paragraphs of (do shell script "ps x -o pid,%cpu | sort -nrk 2")
  
  repeat with next_line in ps_out
    set PID to first word of next_line as integer
    set CPU to second word of next_line as real
    if CPU > cpu_limit then do shell script "kill -9 " & PID
    if CPU = 0 then exit repeat
  end repeat
  
  delay check_interval
  
end repeat


Objašnjenje koda: u beskonačnoj petlji postavlja se željeni interval za provjeru (5 sekundi u primjeru) i limit nakon kojega se gasi proces (300% iskorištenosti procesora u primjeru). Upozoravam da ako se postavi na 100%, velika je vjerojatnoća da će skripta ugasiti samu sebe. Kriptična linija koja poziva shell komandu oslanja se na "ps" naredbu iz koje čupa PID i %CPU podatak (CPU podatak, bez znaka postotka, bi većinu vremena vraćao nulu!) te ih sortira po %CPU, silazno tako da se u nastavku pokrati testiranje procesa. Petlja koja obrađuje liniju po liniju (koje vraća ps) konvertira PID i CPU u brojeve (jer dolaze kao stringovi), a potom ih testira - ako je CPU vrijednost (koja je zapravo %CPU vrijednost) veća od upisanog limita (300 u primjeru), poziva shell komandu koja gasi taj proces. Drugi if je optimizacija i služi za prekid petlje čim naiđe na prvu nultu vrijednost i zapravo se može optimizirati i pametnije, tako da se prekine testiranje čim je CPU < cpu_limita (jer dalje nema potrebe testirati). Delay pauzira zadani broj sekundi (5). I onda sve iznova, uključno s nepotrebnim trošenjem procesora na AppleScript.

Izbacio sam try blokove (koji bi omogućili izvršavanje skripte i u slučaju greške), ali za "ozbiljno" (što je u ovom slučaju oksimoron) korištenje trebalo bi ih vratiti jer skripta, primjerice, može puknuti ako neki proces koji nije u vlasništvu korisnika prijeđe CPU limit - njega bi trebalo gasiti sa "sudo" komandom (što bi usputno bio i security breach), a to bi pak moglo rezultirati ubijanjem nekog procesa koji ne bi smio biti ubijen (jer pripada sistemu, primjerice). Try blok je u tom scenariju dobra pomoć jer skripta u ovom obliku ne bi mogla pogasiti taj proces, ali ne bi ni puknula - tako da ga se u teoriji može dodati, a u praksi skriptu treba izignorirati jer je zla.
07.06.2016 | 22:05
john_st kaže:
Testirat ću svašta od ponuđenog, al router ne kupujem!


Ja te ne razumijem, ali stvarno. Ne zelis kupiti jer ne mozes ili ne zelis?
Ako su novci u pitanju, nasel se bude neki WiFi router.

EDIT
Mislim, zakaj se patis, njuskalo je puno onih Zyxel Prestige 600 routera po 50kn jer ih je T-Com davao uz Adsl. Odlicni su,a li nisu zadnj krik tehnike. Imao ga godinama dok nisam kabel dobio u stan.
07.06.2016 | 22:09
@Djipi - HVALA!!!

@zabac - Tvrdoglav sam
07.06.2016 | 22:13
Tvrdoglavost je jedno, komocija nesto drugo. Radi rasprave upogoni ovo kako je djipi napisao.
08.06.2016 | 10:15
Sjetio sam se da ima bug. "ps" komanda vrati i header ("PID %CPU") kojeg, kad dođe do njega, AppleScript pokuša konvertirati u brojke - i tu pukne. Previdio sam ga jer mi je u testovima tako sortao da bi uvijek došao do exit repeat prije nego li do te linije, ali može se dogoditi da prvo dođe do nje. Zato sam dodao try blok, što usputno rješava i potencijalni "sudo" problem, a optimizirao sam i drugi if.

repeat
  
  set check_interval to 5
  set cpu_limit to 300
  
  set ps_out to paragraphs of (do shell script "ps x -o pid,%cpu | sort -nrk 2")
  
  repeat with next_line in ps_out
    try
      set PID to first word of next_line as integer
      set CPU to second word of next_line as real
      if CPU > cpu_limit then do shell script "kill -9 " & PID
      if CPU < cpu_limit then exit repeat
    end try
  end repeat
  
  delay check_interval
  
end repeat
08.06.2016 | 11:16
Imam ti ja jedan Siemens Gigaset pa ako se hoces igrati, dam ti ga.
08.06.2016 | 16:56
Djipi kaže:
Upozoravam da ako se postavi na 100%, velika je vjerojatnoća da će skripta ugasiti samu sebe.




Svojevrsni "antifork".

Kad smo bili studenti, jako smo voljeli zajebavat sistemaša tako da mu provalimo password i onda rlogin s njegovim accountom pokrenemo "fork bomb" (komadić kôda koji samo u beskonačnoj petlji duplicira postojeći proces). A ovo je suprotno. Kôd koji sam sebe ubije. Were's fun in that?

a u praksi skriptu treba izignorirati jer je zla.


ROTFLMAO
08.06.2016 | 17:19
OMG WTF je ROTFLMAO
09.06.2016 | 08:01
Rolling On The Floor Laughing My Ass Off
Duh!
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 2 sati, 37 minuta
  • superstric: ako netko treba, apple magic mouse 63,01 euro na amazon prime day
  • dpasaric: :)
  • smayoo: Čestitam svima Dan antifašističke borbe!
  • drlovric: Za nekih tjedan dana moj Macbook Pro M1 Pro 16" ide na prodaju. Ako nekoga zanima takvo racunalo (us layout, 16gb ram) neka se javi za dogovor.
  • dpasaric: Možda je to bio Belonguzije - androdi kojeg je predstavio LET 3 u Pikiju jednom davno... istina, imao je dosta ograničen rječnik... :)
  • accom: Evo, čitam o zidiću i gledam Baltazara... jel to bila prva AI mašina na svijetu?
  • dpasaric: To se i meni dogodilo par puta, uvijek prije objave napravim barem copy u buffer, a često ako je nešto kompleksnije, samo paste u TextEdit, just in case.
  • Yonkis: I pretraga je beskorisna, zato sam pisao novu temu jer mi je trebalo manje vremena da ju natipkam i dodam screenshotove nego da češljam rezultate pretrage.
  • Yonkis: Jedem ti jabucnjak, napišem novu temu i nisam odabrao Forum i sve mi izbriše kad sam kliknuo PROVJERI. Odsutajem, 20 min tipkanja otišlo u vjetar. Nikakav alert ili nešto da iskoči da me upozori.
  • ZeljkoB: Zaba na dev beti radi bez greske
  • dpasaric: Vidio sam neke na Twitteru da su stavili dev betu, ali nisu ovdje.
  • mbp2009: ne vidim neke konkretne info na netu za to
  • mbp2009: Ne znam odakle ove diskusije poticu, ali da vidim, ima li koga na dev beti ios? Pogotovo ovaj dio me zanima za PBZ i poslovnu PBZ, ako radi
  • dpasaric: Čekam da mi dođe jedan zanimljiv komad hardvera, pa ću finalizirati velik pregled monitora koji će mnogima biti koristan!
  • dpasaric: "Your request has been processed"
  • Ender: takodje i ja molim admina da obrise i moj korisnicki nalog. ostavljam mogucnost da se kasnije opet prijavim kad i ako se neke stvari promene. pozzz i svako dobro.
  • dpasaric: @Air U redu, razumio sam. Hvala ti na svemu onom pozitivnom, ono drugo će srediti vrijeme.
  • jura22: Vrijeđaj partizane i Tita pa da vidiš.
  • Air: Ako si razumio onda napravi to, a ne da moram pisali litanije za jednostavan zahtjev.
  • dpasaric: Air, naravno da je dovoljno, ako to želiš mogu i ja odmah, ali hej, jutro je pametnije od večeri, prespavaj, pa javi, najmanji je problem kliknuti na delete.
  • Air: Zanimljiv vam je latinski. Uživajte. Između vaših upisa napišite što je potrebno da zatvorim račun na Jabučnjaku ako nije očigledno dovoljno razumljivo ovo što sam napisao na vikalici.
  • smayoo: Canis mater studiorum. Stara studentska. :D
  • dpasaric: @Gjuroo: Per aspera ad astra!
  • Gjuroo: @Air: Illegitimi non carborundum.
  • dpasaric: Chill out i vidjet ćeš kako će ovo sada biti ugodnije, korisnije i pozitivnije mjesto za sve korisnike.
  • dpasaric: Joj ne drami.
  • Air: Molim odgovornu osobu da obriše Air račun.
  • Air: U ovim novim okolnostima transparentnog licemjerstva pojedinca podvlačim crtu. Ja nemam želudac za trpiti to da mi jedan licemjer briše čiste postove samo zato što on ima problem u svojoj glavi. Kako je tino1 rekao bilo mi je zadovoljstvo dolaziti na Jabučnjak radi ljudi. Ovim putem pozdravljam sve dobre ljude Jabučnjaka i HVALA vam! Nakon ovog upisa brišem svoj račun.
  • dpasaric: Sve što je sada obrisano u "kafanskim laprdanjima" je bilo u dogovoru s Djurom, počistili samo za sobom i tko hoće može tamo dalje s "lakim temama".
  • drlovric: @Rusty: Slazem se 100%. Svako bira za sebe. Jedna tema u sekciji Razno, nije smetala nikome ko je dosao da konzumira nesto drugo. Ako sam dosao u ducan da kupim povrce, zasto bi mi smetalo sto prodaju i hranu za bebe? :)
  • rusty: Evo kao dugogodišnji član foruma, moram priznati da niti jednom nisam otvorio političke teme niti sudjelovao u njima na forumu. Dolazim vidjeti non političke, non automobili teme. I jedna i druga su mi kao nogomet, besmislene i ne interesantne. Da li će mi faliti, ne. Da li ću manje dolaziti na forum, ne.
  • dpasaric: To je tvoje viđenje.
  • dpasaric: Obećajem da ćemo je izreklamirati na forumu, pa tko voli…
  • Air: Znam tvoje ovlasti. Nije u tome problem. Problem je što se Jabučnjak predstavlja kao pozitivan, a ovo što ti radiš je negativno!
  • dpasaric: Evo, pokreni i ti moderiraj Signal grupu za vaše političke rasprave.
  • dpasaric: I probaj biti koristan. Pokreni nešto pametno i svima korisno.
  • dpasaric: Pročitaj kućni red još jednom.
  • Air: @dpasaric Otvorio si javni komunikacijski kanal. Tko si ti da brišeš postove iste tematike o kojoj sam pišeš, ako ti postovi nisu uvredljivi i ne krše nikakav zakon?
  • dpasaric: Poanta je da je besmisleno dalje širiti raspravu.
  • Air: Fakat imaš teških osobnih problema
  • Air: Protiv "cara" se ne smije ništa pisati?
  • Air: Smetati osobno?
  • Air: i zašto si obrisao ovaj moj tekst is te teme?
  • Air: u temi kafanska laprdanja
  • Air: @dpasaric Samostalno, ničim izazvan optužio si Djuru za nešto. Djuro ti je odgovorio. Budi čovjek, pa kada si "zagrizao" odgovori čovjeku na njegovu cijelu obranu. - stavku po stavku.
  • Air: Skrećeš TEMUsa svojih LOŠIH djela na svoja DOBRA djela (koja nitko ne spori).;)
  • dpasaric: Propast su lijenost i jalovo lamentiranje. Tko je vrijedan i radi neće propasti.
  • dpasaric: Jabučnjak je do svoje punoljetnosti davao odličnu pomoć svakome tko je došao i bez vaših političkih prepucavanja.
  • dpasaric: Vaša hipoteze su potpuno promašene! :) Ono kao "super je imati stalno aktivnu crnu kroniku jer će onda puno ljudi to čitati, pa će ti koji to čitaju pomagati drugima." Bez brige, tko treba pomoć dobit će je i bez crne kronike.
  • Air: Represija i samovolja su isključivo put u propast

Za vikanje moraš biti prijavljen.

Prijava

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Anketa

Koji Mac koristite?

Page Speed 0.44 Seconds

Provided by iJoomla SEO