![]() |
|
|
google unix.com
|
|||||||
| Forums | S'inscrire | Forum Rules | Liens | Albums | FAQ | Liste des membres | Calendrier | Recherche | Aujourd'hui, les postes | Marquer les forums comme lus |
| De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici. |
Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
|
||||
| Fil | Thread Starter | Forum | Réponses | Last Post |
| l'exécution de script Unix CURL qui contient les commandes FTP à partir de Peoplesoft processus Schedlr | sfedak | De programmation et de script Shell | 2 | 02-18-2009 02:20 PM |
| enfant de procédés | smreddy | UNIX pour les nuls Questions et réponses | 8 | 12-24-2007 12:51 AM |
| L'État d'Unix (Addict 3D) | iBot | UNIX et Linux News RSS | 0 | 06-18-2007 11:40 PM |
| L'état d'Unix - ZDNet.com blogs | iBot | UNIX et Linux News RSS | 0 | 06-18-2007 04:40 AM |
| Processus d'État | ianlow | UNIX pour les nuls Questions et réponses | 1 | 09-06-2006 11:11 AM |
![]() |
|
|
LinkBack | Thread Tools | Recherche sur ce Thread | Rate Thread | Modes d'affichage |
|
|
|
||||
|
Script Unix (sh): état du processus de ftp
Salut les gars,
J'écris un script dans lequel je dois me fichier à partir d'un hôte distant par FTP. Le problème est que la machine distante peut être très lent, pas connecté ou sur OK. Pour résoudre ce problème, je vous écris ceci: [... ...] echo "le bavard"> ftprap.cmd echo "prompt">> ftprap.cmd echo "ascii">> ftprap.cmd echo "passive off">> ftprap.cmd echo "mget *">> ftprap.cmd echo "quit">> ftprap.cmd % ftp IP <. / ftprap.cmd> ftp.log 2> & 1 & PID_FTP \u003d `echo $!» sleep 60 ps-o pid, tty, time, cmd, état | grep-E "$% PID_FTP S"> / dev / null 2> / dev / null if [$? \u003d 0] puis kill -9 $ PID_FTP>> ftp.log 2> & 1 fi [... ...] Pour tuer le ftp que si elle est bloquée. Il arrive que, même s'il fonctionne ftp, ps me montre avec state \u003d S, qui dort! J'essaie d'exécuter le script avec "sleep 1", alors il s'agit de transférer un grand nombre de fichiers, et je suis sûr de cela: montre ps ftp dort et ensuite le script, il tue. Je ne suis pas tellement d'experts sur les scripts unix, alors je ne sais pas où je fais des erreurs. Souhaitez-vous m'aider? Merci à l'avance. |
|
||||
|
Pludi Salut,
voulez-vous dire que si j'utilise le sommeil je bloquer mon commandement FTP? Selon d'éviter d'attendre indéfiniment si l'hôte distant ne fonctionne pas, je veux mettre en œuvre une sorte de délai d'attente, après cela, si le ftp est bloqué, je vais le tuer. Si j'utilise le sommeil, est commande FTP en arrière-plan arrêté??? Si c'est vrai, je suis assez inquiet ... J'essaie de faire un ping hôte de la première (dans le cas réel de ce code se trouve dans une boucle pour une liste d'hôtes), mais tant de ping-bock pare-feu et si Ping a un résultat positif, ce doesn 't savez pas qui va ftp. ... Je passe beaucoup de temps sur ce problème .. et je ne reçois plus folle que je suis! ![]() |
|
|||||
|
Non, votre sommeil ne bloque pas la commande FTP. Let's dévier dans la gestion des processus de noyau pour un peu:
Depuis leur invention noyaux CPU ne peut exécuter un processus à la fois. Cela voulait dire que d'un seul processus d'attente pour l'entrée utilisateur peut bloquer tout le système. Ainsi, quelqu'un a eu l'idée de tranches de temps. Chaque processus est autorisé d'exécution pour un certain temps. Après cette époque, il retourne le contrôle au noyau. Tout était bien jusqu'à ce que certains processus ne renvoie pas le contrôle à dessein. La plupart des noyaux modernes utilisent la préemption à la place. Encore une fois, chaque processus est alloué temps d'exécution. Après ce temps le noyau OS est réveillé par une interruption d'horloge (ou plus tôt si le processus lui donne les droits de retour, car il attend quelque chose), le premier processus est envoyée dans un mode "veille" et une autre est donnée le temps CPU. Le premier processus va continuer quand c'est son tour. Maintenant, revenons à votre cas: vous êtes au début du processus de FTP et de l'envoyer dans le décor. Il obtient son temps tranches comme n'importe quel autre procédé, mais c'est de ne pas exécuter tout le temps. Parfois, d'autres processus sont exécutés, si ftp est marqué comme «dormants» ou, mieux dit, en attendant son tour nouveau. De couchage si vous avez un seul core et obtenir la liste actuelle avec le PS, tous les processus sauf pour ps va (probablement) être marqués comme «», puisque PS utilise actuellement son temps alloué à recueillir les statistiques. Ma suggestion pour votre problème serait:
|
![]() |
| Bookmarks |
| Thread Tools | Recherche sur ce Thread |
| Modes d'affichage | Rate this thread |
|
|