O upload da versão modificada de um script KSH afetará os processos que estão atualmente executando o script?

2

Digamos que eu tenha um script KSH my_script.ksh que executa operações complexas incluindo, mas não se limitando a, chamar o SQLPLUS para manipular um grande número (milhões) de registros em um banco de dados Oracle. O script aceita alguns parâmetros que determinam quais conjuntos de registros serão processados e supõem que leve horas para manipular cada conjunto de registros.

Agora estou tendo uma instância do script em execução no servidor Unix usando NOHUP e & opções de comando, isto é, que ele está atualmente em execução em segundo plano e é separado da sessão de telnet que usei para invocar o script.

Suponha que eu modifiquei o script localmente no meu PC de mesa para tornar as execuções subseqüentes do script mais rápidas e adicionar algum mecanismo de auditoria, e estou prestes a fazer o upload do script no servidor.

Meu upload da versão modificada do script afetará o processo que está atualmente executando o script? Eu não quero matar o processo e começar tudo de novo no conjunto de registros atual e estou com medo de tentar e erro desde que eu não posso ter certeza de quão destrutivo seria. Qualquer conselho de um administrador / usuário experiente?

    
por Lukman 24.08.2010 / 17:24

3 respostas

2

Qualquer shell ficará confuso se você modificar o arquivo de script enquanto o estiver lendo. A janela de tempo problemático pode ser muito pequena se o shell ler todo o arquivo de script antes de começar a executá-lo. Eu não sei se o ksh faz isso.

Se você criar um novo arquivo em vez de modificar o arquivo existente, ou seja, ln myscript myscript.running; mv -f myscript.new myscript (ou qualquer outro método que mova o novo script em vez de modificar o arquivo existente), você não deve ter nenhum arquivo. problema.

    
por 30.08.2010 / 01:01
0

Não vai funcionar muito bem. Se você modificou seu script enquanto ele está em execução, é muito provável que ocorra um erro de sintaxe.

Eu experimentei isso com bash e dash. Eu não acho que seja tão diferente do ksh. Mesmo o lote MS falha nisso.

    
por 24.08.2010 / 17:30
0

Qualquer script ksh terá seu próprio shell, todas as funções serão carregadas primeiro e, em seguida, o script será interpretado. Em tempo de execução. Quaisquer alterações no disco feitas durante a execução não serão refletidas no trabalho em execução no momento.

    
por 24.08.2010 / 19:18