![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| fuldbyrdende Unix-script, der indeholder CURL FTP-kommandoer fra Peoplesoft Process Schedlr | sfedak | Shell Programmering og Scripting | 2 | 02-18-2009 02:20 PM |
| barn proces state | smreddy | UNIX for dummyer Spørgsmål & svar | 8 | 12-24-2007 12:51 AM |
| Staten Unix (Addict 3D) | iBot | UNIX og Linux RSS Nyheder | 0 | 06-18-2007 10:40 PM |
| Status over Unix - ZDNet.com blogs | iBot | UNIX og Linux RSS Nyheder | 0 | 06-18-2007 03:40 AM |
| Proces stat | ianlow | UNIX for dummyer Spørgsmål & svar | 1 | 09-06-2006 10:11 AM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
Unix script (sh): tilstand af ftp proces
Hi guys,
Jeg skriver et manuskript, som jeg har til at få fil fra en ekstern vært ved ftp. Problemet er, at den eksterne maskine kunne være meget langsom, ikke tilsluttet, eller ok. Du kan løse dette problem, jeg skriver dette: [... ...] echo "verbose om"> ftprap.cmd echo "hurtig">> ftprap.cmd echo "ascii">> ftprap.cmd echo "passive off">> ftprap.cmd echo "mget *">> ftprap.cmd echo "afslut">> ftprap.cmd ftp% IP <. / ftprap.cmd> ftp.log 2> & 1 & PID_FTP \u003d `echo $!« sove 60 ps-o pid, TTY, tid, cmd, state | grep-E "$ PID_FTP% S"> / dev / null 2> / dev / null hvis [$? \u003d 0] så kill -9 $ PID_FTP>> ftp.log 2> & 1 fi [... ...] At dræbe ftp kun hvis det er blokeret. Det sker, at selv om ftp kører, ps viser mig med state \u003d S, der sover! Jeg forsøger at køre scriptet med "sleep 1", mens det er at overføre en masse filer, og jeg er sikker på denne: ps viser ftp er i dvale og derefter scriptet dræber det. Jeg er ikke så meget ekspert om unix scripting, så jeg ikke ', hvor jeg laver fejl. Vil du hjælpe mig? Tak på forhånd. |
|
||||
|
Hi pludi,
mener du, at hvis jeg bruger sover jeg blokere min ftp kommando? Ifølge at undgå at vente for evigt, hvis værten ikke virker, jeg ønsker at gennemføre en slags timeout, efter dette, hvis ftp er blokeret, vil jeg dræbe den. Hvis jeg bruger sove, er ftp kommando i baggrunden stoppet??? Hvis det er sandt, jeg er ret bekymret ... jeg prøver at pinge første værten (i den virkelige sag denne kode i en løkke til en liste af værter), men så mange firewall Bock ping, og hvis ping har et positivt resultat, dette virker ikke 't sikker på at ftp kører. ... Jeg bruger en masse tid om dette problem .. og jeg er ved at blive skør, end jeg er bare! ![]() |
|
|||||
|
Nej, din søvn ikke blokere FTP kommando. Lad os sidespor i kerne-proces forvaltning for en smule:
Siden deres opfindelse CPU-kerner kun kan udføre en proces ad gangen. Dette betød, at en enkelt proces venter på brugerinput kunne blokere hele systemet. Så nogen kom op med idéen om tid skiver. Hver proces er tilladt udførelse af et bestemt tidsrum. Efter den tid det overlader kontrollen til kernen. Alt var godt, indtil nogle processer ikke vendte tilbage kontrol med vilje. De fleste moderne kerner brug preempting stedet. Igen, hver proces er afsat gennemførelsestid. Efter den tid den OS-kerne er vågnet via en timer interrupt (eller tidligere, hvis den proces, giver det ret tilbage, fordi det venter på noget), den første proces er sendt ind i en dvaletilstand og en anden er givet CPU-tid. Den første proces vil fortsætte, når det er dens tur. Nu tilbage til din sag: du starter FTP-processen og sende den i baggrunden. Det får sin tid-skiver lige som enhver anden proces, men det er ikke udfører hele tiden. Sommetider andre processer udføres, så ftp er markeret som 'sovende' eller rettere sagt, venter på sin tur igen. Hvis du kun har en CPU kerne og få den nuværende liste med PS, alle processer undtagen for PS vil (sandsynligvis) blive markeret som "sovende", da ps er i øjeblikket ved hjælp af den tildelte tid til at samle statistik. Mit forslag til dit problem vil være:
|
![]() |
| Bogmærker |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|