Em um IBM Mainframe executando o z / OS, você executa um utilitário que copia um conjunto de dados (arquivo) para outro conjunto de dados (arquivo). A entrada é a fonte da JCL (Job Control Language) que você enviou para fazer com que ela seja executada. A saída é o leitor interno (INTRDR). Você também precisará garantir que seu sistema não permita a execução de vários nomes de tarefas idênticos. É bom usar uma classe de trabalho que possui apenas um iniciador (local onde um JOB pode ser executado em lote).
Não há PIDs envolvidos (no z / OS), portanto falha no conjunto de desafios.
Você interrompe o processo drenando e / ou lavando. Se algo der errado, drenando e / ou lavando, xingando, chutando, tentando um arranque a quente e, finalmente, iniciando a frio ou pressionando o Grande Botão Vermelho (e disparando no programador).
Eu posso ter exagerado ao longo do caminho, mas não tente fazer isso no trabalho ...
Exemplo usando SORT. Os detalhes no cartão JOB são muito dependentes do site. A política do site pode proibir ou impedir o uso do INTRDR. Uma classe específica pode ser necessária para usar o INTRDR. Se a política do site proibir seu uso , não a use, a menos que você queira levar seus pertences para passear em uma caixa de papelão.
Embora haja bons usos para o INTRDR, não o utilize para esse fim . Você nem terá a chance de pegar sua caixa.
//jobname JOB rest is to your site standards
//*
//STEP0100 EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//SORTOUT DD SYSOUT=(,INTRDR) minimum required, site may require more
//SYSIN DD *
OPTION COPY
//SORTIN DD DISP=SHR,DSN=YOUR.LIBRARY.WITHJOB(JOBMEMBR)
Outros utilitários estão disponíveis. Um programa rápido também seria fácil, basta ler um arquivo, escrever um arquivo.
Se você quiser que um exemplo disso dê errado, tente: http://ibmmainframes.com/viewtopic.php?p=282414#282414
A maneira tradicional de copiar um conjunto de dados é usar o utilitário IBM IEBGENER, como a ugoren faz alusão em seus comentários.
No entanto, atualmente, muitos sites têm o IEBGENER "alias" para o ICEGENER. O ICEGENER, se puder, usará o DFSORT da IBM (ou seu rival SyncSort) para fazer uma cópia, porque os produtos SORT são muito mais otimizados para IO do que o IEBGENER.
Estou apenas cortando o intermediário usando SORT.
Se você trabalha em um site IBM Mainframe, conhece o formato da placa JOB que deve usar. O cartão mínimo de trabalho é como eu mostrei, sem o comentário. O comentário será importante, porque você pode estar fornecendo informações contábeis, por exemplo. O nome do trabalho provavelmente terá um formato específico do site.
Alguns sites proíbem ou impedem o uso do INTRDR. Estar ciente.
Alguns sites permitem que vários trabalhos com o mesmo nome sejam executados ao mesmo tempo. Estar ciente.
Embora, a menos que você seja um programador do sistema, não possa configurar essa classe, procure uma classe que permita apenas um iniciador. Com isso, o processo é bastante seguro - mas tenha certeza absoluta de que a classe está funcionando como descrito. Teste. Não com este trabalho.
Se você é um programador do sistema, sabe que não deve fazer nada fora do seu mandato. disse nuff.
Com um trabalho com o mesmo nome permitido ao mesmo tempo e um único iniciador, este será um fluxo constante de início / término do trabalho próximo / início / término do trabalho - até você preencher o spool (outra coisa ruim a fazer) com a saída de milhares de trabalhos (ou os números acabam). Assista a um console JES para obter mensagens de aviso.
Basicamente, não faça isso. Se você fizer isso, não faça em uma máquina de produção.
Com um pouco de detalhamento, considerarei outra resposta sobre como fazê-lo em outro sistema operacional IBM Mainframe, z / VSE ... z / VSE usa JCL. O z / OS usa JCL. Eles são diferentes :-)
exec
acontece no linux?