Watch-dog, timer, eller annat
Watch-dog, timer, eller annat
Jag har en process som hänger sig. Processen startas med ett tidsintervall. Det resulteras att jag får ett gäng hängande processer. Hur slår jag ihjäl dessa automatisk? Jag började glatt ha kod i processen själv. Inte så smart. (den slog ihjäl sig själv. Hur dum får man vara!?) Dock kan jag förståss kolla om det finns en annan process med samma namn och döda den första. Känns inte så bra lsg.
-Ett annat sätt att ha ett script som dödar processen körs via crontab med lämpligt intervall.
-Att processen sätter upp en timer som dödar processen eller bara gör något continue. Jag har inte sett hur man gör i linux. (jag får goggla lite och och se om jag hittar något)
Andra tankar. Hur brukar ni göra?
-Ett annat sätt att ha ett script som dödar processen körs via crontab med lämpligt intervall.
-Att processen sätter upp en timer som dödar processen eller bara gör något continue. Jag har inte sett hur man gör i linux. (jag får goggla lite och och se om jag hittar något)
Andra tankar. Hur brukar ni göra?
- Swech
- EF Sponsor
- Inlägg: 4694
- Blev medlem: 6 november 2006, 21:43:35
- Ort: Munkedal, Sverige (Sweden)
- Kontakt:
Re: Watch-dog, timer, eller annat
Det optimala är väl att fixa så att processen inte hänger sig
men det är ju ett drygt svar...
Antar att den delen inte går att fixa
Swech
men det är ju ett drygt svar...
Antar att den delen inte går att fixa
Swech
Re: Watch-dog, timer, eller annat
Tja, du får väl vara lite tydligare med vad det är du jobbar med, inbäddat?, RTOS?, PC?, OS? osv
Re: Watch-dog, timer, eller annat
EN variant är ju att starta processen ifrån ett överliggande program, som sedan övervakar "Barn-processen" och slår ihjäl den vid behov
Re: Watch-dog, timer, eller annat
Javisst. Tänkte inte på detSwech skrev:Det optimala är väl att fixa så att processen inte hänger sig
Tja frågan var väl lite dubbel.ThomasL skrev:Tja, du får väl vara lite tydligare med vad det är du jobbar med, inbäddat?, RTOS?, PC?, OS? osv
1) Generellt
2) Problemet som fick mig fundera just nu är baserat på:
Kod: Markera allt
pi@mumin1 ~ $ cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 7 (wheezy)"
NAME="Raspbian GNU/Linux"
Re: Watch-dog, timer, eller annat
Du vill alltså ha ett enkelt fulhack som dödar din process. Inga problem!
Börja med att installera coreutils apt install coreutils
Sen antar jag att du startar din process med crontab?
Ändra kommandot som startar enligt följande:
5 * * * * timeout 4m buggig_process
Om inte processen avslutats efter fyra minuter dödar "timeout" den automatiskt.
Börja med att installera coreutils apt install coreutils
Sen antar jag att du startar din process med crontab?
Ändra kommandot som startar enligt följande:
5 * * * * timeout 4m buggig_process
Om inte processen avslutats efter fyra minuter dödar "timeout" den automatiskt.
Re: Watch-dog, timer, eller annat
Timeout fungerar utmärkt även om det inte är som exception-hantering som finns i en del högnivåspråk.
Tack!
Att gräva i fel ger många spinn-off som tex att hitta dena godisfabrik
https://www.gnu.org/manual/manual.html
https://www.gnu.org/software/coreutils/ ... index.html
Jag har lärt mig nått om xargs och pipe (som jag naivt trodde att jag förstod)
Så här ser mitt problem med ftp mot one.com ut: Var felet ligger vet jag inte men misstänker one.com. sftp verkar fungera att ladda upp filer med.
Kod: Markera allt
*/10 * * * * timeout 8m /home/pi/send-to-one.sh &> /dev/null
Tack!
Att gräva i fel ger många spinn-off som tex att hitta dena godisfabrik
https://www.gnu.org/manual/manual.html
https://www.gnu.org/software/coreutils/ ... index.html
Jag har lärt mig nått om xargs och pipe (som jag naivt trodde att jag förstod)
Så här ser mitt problem med ftp mot one.com ut:
Kod: Markera allt
$ ftp -n -i
ftp> open ftp.astranko.se
Connected to accessproxy.webpod9-cph3.one.com.
220 Welcome to One.com FTP.
ftp> user astranko.se
331 User astranko.se OK. Password required
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> binary
200 TYPE is now 8-bit binary
ftp> put log_500h.png
local: log_500h.png remote: log_500h.png
200 PORT command successful.
425 Could not open data connection to port 33781: Connection timed out
ftp> ls
200 PORT command successful.
425 Could not open data connection to port 45677: Connection timed out
Re: Watch-dog, timer, eller annat
SFTP använder bara en enda tcp-anslutning, så det brukar vara rätt okomplicerat. FTP använder en separat anslutningen för dataöverföringen. Det ser ut som att du kör aktiv ftp, och att det då antagligen är din brandvägg som inte släpper igenom när servern försöker ansluta till din klient. Prova att sätta din klient i passiv mod istället.
Re: Watch-dog, timer, eller annat
Man får ställa in sin FTP-klient att den instruerar servern att använda passiv anslutning, då är det klienten som öppnar anslutningen, annars är det servern som öppnar data-anslutningen, och då blir det tvärstopp i alla brandväggar.
Re: Watch-dog, timer, eller annat
Tack!
Att lägga till -p i ftp-kommandot löste mitt problem.
Att lägga till -p i ftp-kommandot löste mitt problem.
Kod: Markera allt
$man ftp ...
-p Use passive mode for data transfers. Allows use of ftp in environments where a firewall prevents connections from the outside
world back to the client machine. Requires that the ftp server support the PASV command. This is the default if invoked as
pftp.