Como lanço um arquivo de comando (por exemplo, * .sh) em um utilitário de interação de shell separado (por exemplo, iTerm2) no login do meu usuário?

1

O iTerm2 é um utilitário incrível e facilita muito minha interação com a linha de comando. Existem muitos comandos de atualização que eu executo diariamente, e pensei que seria incrível se eles pudessem ser iniciados no login do meu usuário. Eu sei que para executar um script em um evento de login do usuário, um diretório deve ser criado em / System / Library / StartupItems com o script que deseja ser executado com o mesmo nome do diretório (por exemplo, update_sys / update_sys. sh) Os dois principais problemas que tenho depois disso é que 1) quando os comandos são executados, não há janela de terminal para mostrar qualquer saída, e 2) eu não sei como designar o iTerm2 (ou qualquer outro utilitário) como o utilitário de terminal primário para executar scripts. Eu tenho iTerm2 definido como o utilitário de terminal padrão, no entanto, alguns scripts executados ainda serão lançados no Terminal.

Qualquer ajuda é muito apreciada!

(Se minhas concepções sobre como adicionar comandos a um evento de login do usuário estiverem incorretas ou se houver uma maneira mais fácil de fazê-lo, por favor me avise!)

    
por T145 05.12.2013 / 15:23

2 respostas

0

Eu nunca usei o iTerm (ou Mac OS); mas como o iTerm é um emulador de terminal, provavelmente não é adequado agendar tarefas. Em scripts de login de sistemas * nixiod, geralmente são executados a partir de arquivos como ~/.profile , /etc/profile e em arquivos específicos do shell, como ~/.bashrc e /etc/bash.bashrc . Você pode ler sobre eles na página de manual do seu shell (por exemplo, man 1 bash ).

    
por 05.12.2013 / 17:29
0

O iTerm permite que você execute esses scripts de forma interativa e, à medida que as sessões interativas enviam a saída para a tela, você vê os resultados.

Muitos programas também podem ser executados como processos em segundo plano.

A melhor maneira de ver a saída é geralmente anexá-la manualmente a um log. Se necessário, usando instruções echo para mostrar onde e qual comando está sendo executado. Para o fluxo de saída que vem do comando interno.

Acho que o que você provavelmente quer é detalhado aqui:

i.e. some_cmd > some_file 2>&1 & que redirecionará a saída padrão para o arquivo de log.

    
por 12.02.2014 / 12:44