Modifique o / etc / xdg / lxsession / LXDE / autostart antes do boot

3

Eu tenho alguns parâmetros que gostaria de alterar em /etc/xdg/lxsession/LXDE/autostart antes de ser executado. Eu recebo os parâmetros de um comando grep. Eu gostaria de alimentá-los para o arquivo autostart , mas não tenho certeza de como.

Atualmente, o que eu tenho é grep "stuff" /file/one , que gera 1234.

Eu quero colocar 1234 no arquivo autostart como

....
@program 1234
....
    
por Alexis K 22.11.2012 / 21:48

1 resposta

1

Como sempre, há provavelmente um milhão de maneiras de fazer isso e a maneira como eu li a sua pergunta é sobre o seu problema da maneira errada, mas as primeiras são as primeiras.

Após digitar seu nome de usuário e senha corretamente, todos os scripts em /etc/X11/Xsession.d são originados (não executados, é uma diferença muito importante!) em ordem alfabética. Então, se você quiser que alguma lógica aconteça após o login, mas antes que o ambiente de desktop seja iniciado, esse é o lugar para colocar seus scripts.

Nesse script, você pode colocar

for item in $(grep "stuff" /file/one)
do
  echo "@program ${item}" >> /etc/xdg/lxsession/LXDE/autostart
done

Isso adicionará as linhas que você deseja arquivar as quais deseja adicioná-las. É o '> >' Isso faz com que o shell acrescente as linhas ao final do arquivo, em vez de substituir o arquivo. Essa é a resposta para sua pergunta.

Agora, eis o problema: com esse script, o resultado de seu grep será adicionado ao arquivo de inicialização automática toda vez que você fizer login na sua máquina. Então, a primeira vez que o programa será executado uma vez. A próxima vez que você fizer o login duas vezes e três vezes no seu próximo login. A lista de seus programas de auto-inicialização continuará crescendo enquanto seu grep gerar resultados para adicionar ao arquivo de autoinicialização. É por isso que eu inicialmente disse que você está lidando com o seu problema da maneira errada.

Além disso, não existe apenas o% global/etc/xdg/lxsession/LXDE/autostart. Você pode ter um arquivo ~/.config/lxsession/LXDE/autostart para cada usuário individual. Mesmo se você for o único usuário trabalhando em sua máquina, você deve editar o arquivo em seu diretório pessoal ( ~ expande para seu diretório pessoal) que o global.

E como conselho final se você quer rodar programas, apenas adicione uma entrada ao seu ~/.config/lxsession/LXDE/autostart para um shell script que faça um loop for como declarado acima, mas ao invés de adicionar linhas a algum arquivo você realmente executa os comandos. Quando você executar comandos com um & no final da linha, esses programas serão executados em segundo plano e o script não será bloqueado.

    
por 23.11.2012 / 09:22