Como adicionar um script ao Startup Applications a partir da linha de comando? [duplicado]

19

Eu tenho um script de shell. Eu quero configurar meu script para ser executado automaticamente durante a inicialização. Eu sei como fazer isso da GUI. Mas eu queria fazer isso do terminal. Como posso fazer isso?

Em uma pesquisa primária, descobri que o arquivo precisa ser movido para o diretório /etc/int.d/ . Mas esta operação precisa de permissão do sudo. Eu queria fazer isso sem permissões de superusuário.

Também descobri que há arquivos em ~/.config/autostart/ , que estão tendo algumas configurações relacionadas aos aplicativos de inicialização. Mas eu não sei como editá-los para conseguir isso.

Alguém pode me dizer o procedimento exato para conseguir isso?

    
por Anonymous Platypus 18.03.2015 / 10:16

2 respostas

17

Como configurar um ativador de inicialização a partir da linha de comando

Como você mencionou na sua pergunta, os comandos podem ser executados no login colocando-se um lançador em ~/.config/autostart Como o iniciador é usado apenas para iniciar um script, você só precisa das palavras-chave de entrada "básicas" na% criada.desktop files: as palavras-chave / linhas que você precisa, pelo menos:

[Desktop Entry]
Name=name
Exec=command
Type=Application

A linha (opcional) X-GNOME-Autostart-enabled=true será adicionada automaticamente se você ativar / desativar a função de início automático do ativador (ela é definida como X-GNOME-Autostart-enabled=true por padrão)

Mais sobre campos obrigatórios, você pode encontrar aqui .

Exemplo de script

Para criar um lançador desse tipo a partir da linha de comando, você precisaria de um script pequeno que levaria o nome do iniciador e o comando para ser executado como um argumento. Um exemplo de tal script abaixo.

Se eu executar com o comando:

python3 '/path/to/script' 'Test' 'gedit'

Ele cria um ativador de inicialização, executando gedit quando eu faço o login.
O lançador também está visível no Dash > Aplicações de inicialização:

Oscript

#!/usr/bin/env python3 import os import sys home = os.environ["HOME"] name = sys.argv[1]; command = sys.argv[2] launcher = ["[Desktop Entry]", "Name=", "Exec=", "Type=Application", "X-GNOME-Autostart-enabled=true"] dr = home+"/.config/autostart/" if not os.path.exists(dr): os.makedirs(dr) file = dr+name.lower()+".desktop" if not os.path.exists(file): with open(file, "wt") as out: for l in launcher: l = l+name if l == "Name=" else l l = l+command if l == "Exec=" else l out.write(l+"\n") else: print("file exists, choose another name")

Cole-o em um arquivo vazio, salve-o como set_startupscript.py , execute-o pelo comando:

python3 /path/to/set_startupscript.py '<name>' '<command>'

O que faz

  • Cria um lançador básico (você não precisa mais, executando um script) em ~/.config/autostart , levando o nome e o comando como argumentos.
  • Se um lançador com o nome já existir em ~/.config/autostart , ele imprime uma mensagem:

    file exists, choose another name
    
por Jacob Vlijm 18.03.2015 / 10:44
6

Eu encontrei uma resposta

cd para ~/.config/autostart/ . Se você não tiver uma pasta chamada autostart , crie uma com esse nome usando mkdir autostart.

Agora adicione o seguinte arquivo com o nome yourScript.sh.desktop

[Desktop Entry]
Type=Application
Exec="/Your/location/to/theScript/yourScript.sh"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=AnyNameYouWish
Name=AnyNameYouWish
Comment[en_IN]=AnyComment
Comment=AnyComment

Feito!

    
por Anonymous Platypus 18.03.2015 / 10:36