script bash não está sendo executado na inicialização

0

Eu criei um script simples chamado echo.sh. Que produz uma string. Eu me certifiquei de que é executável. E então eu adicionei ao programa "startup applications" através da interface gráfica. No entanto, quando eu reinicio minha máquina, ela não parece ter sido executada, já que não há eco aparecendo em um terminal.

da minha compreensão não deve o script, quando executado, abrir um terminal automaticamente do meu entendimento, porque o STDOUT é o arquivo de terminal. No entanto, o script funciona bem se eu iniciá-lo do terminal.

echo.sh

#!/bin/bash

echo "hello this is a bash script talking"

Tornando-o executável

chmod +x echo.sh

Adicionando a "aplicativos de inicialização com o diretório correto para o arquivo"

Resultado

Noentanto,quandoreinicializoosistema,oscriptnãoéexecutadocomoesperadoenenhumterminalaparececomamensagemdeeco.Eunãotenhocertezadoporquê,eeupossoestarperdendocompletamenteoponto,seassimfor,porfavormeavise.

apenasparanotar,todososmeusoutrosscriptsdobashfuncionam,comoomeuscript"cleanup.sh" que também está no programa "startup applications".

Tentativas de correção

Eu tentei redirecionar o STDOUT para o arquivo de terminal / dev / tty. No entanto, isso não parece funcionar.

#!/bin/bash

echo "hello this is a bash script talking" >/dev/tty

Eu também testei um script bash com apenas um simples comando rm, apenas para verificar se era apenas o comando echo que estava tendo problemas. No entanto, quando adicionado para iniciar aplicativos ou arquivo .bashrc, ele não exclui o test.txt no mesmo diretório do script. No entanto funciona quando eu executo manualmente a partir do terminal.

#!/bin/bash

rm ./test.txt

Eu também testei o próprio programa de aplicativos de inicialização apenas com o Firefox, apenas com o comando Firefox. Que funciona sem problema. Então, isso não parece ser um problema com o próprio programa de aplicativos de inicialização?

    
por Hexodus 11.07.2017 / 14:43

1 resposta

0

O script provavelmente funciona, mas o STDOUT do script (para onde a saída é direcionada) está conectado ao processo no sistema operacional que está preocupado com o início de scripts de inicialização como este, que não é executado em um terminal, mas é um processo oculto pelo usuário dentro, por exemplo, do kernel. Para abrir um terminal com esta mensagem, você provavelmente deve editá-lo para

#!/bin/bash
gnome-terminal -e 'echo "hello this is a bash script talking"'

(Eu não estou no Ubuntu agora, então não posso testar isso, mas a essência é abrir explicitamente um terminal onde você quer que essa mensagem apareça)

    
por 11.07.2017 / 14:50

Tags