Como posso saber o número do meu trabalho ao executar um programa COBOL por meio de um script de shell?

0

Como posso saber o número do meu trabalho ao executar um programa COBOL por meio de um script de shell?

    
por nabi 05.11.2013 / 11:27

2 respostas

2

Você pode explicar um pouco mais o que está fazendo? Existem vários "números" relacionados ao seu programa.

NOTA: Nos meus exemplos, o sinal de dólar ( $ ) indica o prompt de comando e não deve ser digitado como parte do comando.

  1. ID do processo

    Quando um programa é executado no Unix, é atribuído um ID de processo. Digamos que eu tenha o programa sleep e eu o execute por 100 segundos.

    $ sleep 10000
    

    Eu posso então descobrir seu ID de processo usando o comando ps . O ID do processo seria 9263 , por exemplo:

    $ ps -eaf|grep sleep
    saml      9263  5736  0 05:48 pts/1    00:00:00 sleep 10000
    
  2. Trabalho em segundo plano

    Quando um programa é backgroundeado, ele pode continuar rodando sem estar diretamente conectado ao shell de onde ele foi executado.

    $ sleep 10000 &
    [1] 9370
    

    Aqui estou executando o programa sleep por 10000 segundos. O e comercial ( & ) no final informa ao shell para o plano de fundo. Quando os trabalhos são executados, eles assinam um trabalho #. Neste caso, foi atribuído o trabalho nº 1. O 9370 é o ID do processo.

    Podemos descobrir quais tarefas estão sendo executadas usando o comando jobs :

    $ jobs
    [1]+  Running                 sleep 10000 &
    

    Podemos usar o trabalho # para agir nesse processo matando-o ou colocando-o de volta no primeiro plano.

    $ kill %1
    
    $ fg
    -or-
    $ fg %1
    
  3. comandos at e batch

    Existem lugares adicionais onde "números" aparecem em uma capacidade de trabalho. Tarefas agendadas que são enfileiradas usando os comandos at ou batch também são números atribuídos.

    $ at -f mycrontest.sh  10pm tomorrow
    job 14 at Sun Jul  8 22:00:00 2007
    
  4. Tecnologias de clustering de computação

    Ainda mais, se o seu site estiver usando uma tecnologia de cluster como Grid Scheduler / Grid Engine , SLURM , ou outros , estes os sistemas também têm tarefas atribuídas a cada tarefa individual.

por 05.11.2013 / 11:55
0
#!/bin/bash

cobol_program &
echo "The COBOL program is running in the background with PID: $!"

Veja a página man para bash em 'Parâmetros especiais'

    
por 06.11.2013 / 05:11

Tags