![]() |
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| executando Unix script que contém comandos de FTP CURL Peoplesoft Processo Schedlr | sfedak | Programação Shell Script e | 2 | 02-18-2009 02:20 |
| processo filho estado | smreddy | UNIX para Dummies Perguntas & Respostas | 8 | 12-24-2007 12:51 |
| O Estado de Unix (Addict 3D) | iBot | UNIX e Linux RSS Notícias | 0 | 06-18-2007 11:40 |
| O estado do Unix - ZDNet.com blogs | iBot | UNIX e Linux RSS Notícias | 0 | 06-18-2007 04:40 |
| Processo de Estado | ianlow | UNIX para Dummies Perguntas & Respostas | 1 | 09-06-2006 11:11 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
Unix script (sh): estado do processo ftp
Oi gente,
Estou escrevendo um script em que eu tenho que pegar um arquivo a partir do host remoto por ftp. O problema é que a máquina remota pode ser muito lento, não ligado ou ok. Para resolver este problema, eu escrevo este: [... ...] echo "verbose em"> ftprap.cmd echo "mensagem">> 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 $!" sono 60 ps-o pid, tty, tempo, cmd, estadual | grep-E "$ PID_FTP% S"> / dev / null 2> / dev / null if [$? \u003d 0] então kill -9 $ PID_FTP>> ftp.log 2> & 1 fi [... ...] Para matar ftp só se for bloqueado. Acontece que, mesmo que ftp é executado, mostra-me com o estado ps \u003d S, que está dormindo! Tento executar o script com "sono 1", enquanto está a transferir uma grande quantidade de arquivos, e eu tenho certeza disto: ps mostra ftp está dormindo e, em seguida, o script mata-lo. Eu não sou tão perito sobre unix script, então eu não "sabe onde eu cometer erros. Poderia ajudar-me? Graças, em fase avançada. |
|
||||
|
Oi pludi,
que quer dizer que se eu dormir eu uso o meu bloco ftp comando? Segundo a evitar que esperar para sempre se o host remoto não funcionar, eu quero implementar uma espécie de tempo, após isso, se o FTP é bloqueado, vou matá-lo. Se eu usar o sono, é comando FTP no fundo parado? Se é verdade, eu sou bastante preocupado ... tento ping primeiro de acolhimento (no caso real é esse código em um loop de uma lista de hosts), mas tantos firewall Bock ping ping e se tem um resultado positivo, isso não 't certeza que ftp é executado. ... Estou gastando muito tempo sobre este problema .. e eu estou ficando louco do que eu sou! ![]() |
|
|||||
|
Não, o seu sono não bloquear o comando FTP. Vamos adiar a solução de gestão de processos do kernel em um bit:
Desde a sua invenção tarolos CPU só pode executar um processo de cada vez. Isto significava que um único processo de espera para entrada de usuário poderá bloquear todo o sistema. Então, alguém veio com a idéia de tempo fatias. Cada processo é permitido execução de um certo tempo. Após esse tempo ele retorna controle para o kernel. Tudo estava bem até que alguns processos não retornou controle de propósito. A maioria dos kernels modernos utilizam preempting vez. Mais uma vez, cada processo é atribuído tempo de execução. Após esse tempo, o SO kernel é através de um temporizador despertou interromper (ou mais cedo se o processo dá-lhe os direitos da volta, porque isso é esperar por alguma coisa), o primeiro processo é enviado para um modo de dormir e outro é dado tempo da CPU. O primeiro processo continuará quando é a sua vez. Agora, de volta para o seu caso: você está iniciando o processo FTP e enviá-la para o fundo. Começa suas fatias de tempo, tal como qualquer outro processo, mas não é executar o tempo todo. Às vezes, outros processos são executados, de modo ftp é marcado como 'dormir', ou, melhor dito, esperando sua vez de novo. Se você só tem uma CPU central e obter a lista atual com o PS, com excepção de todos os processos ps irão (provavelmente) ser marcado como 'dormir', uma vez que PS está a utilizar actualmente o seu tempo alocado para recolher as estatísticas. Minha sugestão para o problema seria:
|
![]() |
| Marcadores |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|