Um script de inicialização no Ubuntu que só é executado corretamente quando executado manualmente

2

Estou tentando executar um script no início da sessão, então adicionei-o ao Sistema - > Preferências - > Aplicações de inicialização.

O script é executado, mas alguns dos comandos não parecem rodar. Se após a inicialização eu abrir um terminal e executar o script manualmente, ele funcionará bem!

#!/bin/bash
if [ "$DISPLAY" == ":0.0" ]; then
  tmux new -s Phys \; \
    new-window -t Phys -n synergy \; \
    send-keys -t Phys:1 '~/bin/start-synergy' 'enter' \; \
    send-keys -t Phys:0 'xbmc' 'enter' \; \
    select-window -t Phys:1
else
  tmux new -s NX \; \
    new-window -t NX -n miro \; \
    send-keys -t NX:0 'transmission-gtk' 'enter' \; \
    send-keys -t NX:1 'miro' 'enter' \; \
    select-window -t NX:1
fi

A única razão pela qual eu estou usando o tmux é para que eu possa ver a saída do console, já que eu estava tendo problemas para fazer o script abrir os aplicativos corretamente.

No entanto, não funciona de todo, o tmux não inicia.

Como eu disse, se eu abrir um terminal e rodar esse script, ele funciona perfeitamente!

Eu tentei redirecionar a saída do tmux para um arquivo de log para ver se eu tinha uma pista lá, mas o log fica vazio.

Além disso, adicionei echo comandos que saem para um arquivo, apenas para ver se o script está sendo executado, e é.

Qual poderia ser a causa?

    
por Ivan 10.05.2011 / 20:17

1 resposta

0

É possível que o script esteja sendo executado antes que seu caminho esteja totalmente configurado. Eu costumo criar o hábito de usar caminhos absolutos para todos os comandos que executo em um script especificamente para evitar problemas de caminho.

Tente alterar tmux para /path/to/tmux ; você pode encontrar este caminho facilmente executando o comando whereis tmux . Faça o mesmo com seus subcomandos também - em vez de ~/bin/start-synergy , por exemplo, /home/[your username]/bin/start-synergy , etc.

    
por 10.05.2011 / 20:32