Onde estão os scripts de inicialização do Unity Desktop?
11
Quero executar um script assim que minha autenticação lightdm for bem-sucedida e meu Unity começar a carregar. e eu quero executar meus scripts como um usuário root.
onde estão os scripts de inicialização localizados no Unity?
O @Shnd X realmente inicia antes do lightdm, porque o lightdm também roda no X. Portanto, se você deseja executar algo como seu usuário, provavelmente o deseja "após a autenticação do lightdm ter sido bem-sucedida" ou, em outras palavras, "quando a área de trabalho estiver iniciando". Também é possível executar um script quando você apenas inicializa o computador, não importa se você possui um usuário conectado ou não (é isso que inicia o X por exemplo) que essa é uma pergunta completamente diferente. Se você deseja executar algo como usuário, provavelmente deseja e a resposta depende do seu sistema init.
Erikbwork
Respostas:
5
Primeiro, coloque seu script /usr/bine dê permissão de execução.
Agora crie o arquivo .desktop no /home/[user-name]/.config/autostart/qual executar seu script que é executado na inicialização.
Exemplo: - Deixe seu nome de arquivo de script como "exemplo" ou "exemplo.sh"
Crie o arquivo .desktop com o gedit com as seguintes linhas e salve como filename.desktop em /home/[user-name]/.config/autostart/
"$ HOME / .config / upstart" não existe esse diretório na minha máquina.
Kalamalka Kid
1
@KalamalkaKid Qual versão do Ubuntu você usa? O diretório inicial deve estar neste local /home/yourusername/.config/upstart/. Abra o seu diretor de casa no nautilus, pressione Ctrl + H e você deverá ver o diretório .config
TuKsn
2
Para executar um comando como root , após o login, existe outro truque simples:
São necessários dois passos:
crie um arquivo acionador no login
crie um cronjob, executado pela raiz (definido em /etc/crontab), para executar um script minúsculo (executando seu comando) se e somente se o arquivo acionador existir. Como o arquivo acionador é removido pelo mesmo script, seu comando é executado apenas uma vez.
A sequência é então:
USER LOGIN > trigger file is created > cronjob runs script (with your command) and removes trigger file, > next time the script passes, since the trigger file does not exist anymore
A configuração
Os dois pequenos scripts:
Um para criar o arquivo acionador no login:
#!/bin/sh
touch $HOME/.trigger
e um dois executam o comando:
#!/bin/bash
FILE="/path/to/your/homedirectory/.trigger"
# don't use $HOME here, since you run it by root
if [ -f $FILE ]; then
<your command here, run by root>
rm -f $FILE
fi
copie os dois scripts em dois arquivos vazios, salve-os como create_trigger.she run_command.sh.
Por razões de conveniência, torne-os ambos executáveis.
Adicione o seguinte comando aos aplicativos de inicialização (Dash> Startup Applications> Add)
/path/to/create_trigger.sh
Adicione a seguinte linha ao /etc/crontabarquivo ( sudo nano /etc/crontab):
* * * * * root /path/to/run_command.sh
Agora, o comando definido é executado uma única vez dentro de um minuto após o login.
Respostas:
Primeiro, coloque seu script
/usr/bin
e dê permissão de execução.Agora crie o arquivo .desktop no
/home/[user-name]/.config/autostart/
qual executar seu script que é executado na inicialização.Exemplo: - Deixe seu nome de arquivo de script como "exemplo" ou "exemplo.sh"
Crie o arquivo .desktop com o gedit com as seguintes linhas e salve como filename.desktop em
/home/[user-name]/.config/autostart/
Aqui
Exec=sudo example
ouExec=sudo example.sh
executa seu script como raiz em/usr/bin
Dê permissão de execução ao arquivo .desktop.Agora, o Script é executado na inicialização.
fonte
Outra possibilidade:
Crie um arquivo no
$HOME/.config/upstart/my-upstart-script.conf
Mais detalhes sobre o Upstart :
http://ifdeflinux.blogspot.de/2013/04/upstart-user-sessions-in-ubuntu-raring.html
http://upstart.ubuntu.com/cookbook/
Informações a serem executadas
sudo
sem senha:Como executar um aplicativo usando o sudo sem uma senha?
Como executo comandos sudo específicos sem uma senha?
fonte
/home/yourusername/.config/upstart/
. Abra o seu diretor de casa no nautilus, pressione Ctrl + H e você deverá ver o diretório .configPara executar um comando como root , após o login, existe outro truque simples:
São necessários dois passos:
/etc/crontab
), para executar um script minúsculo (executando seu comando) se e somente se o arquivo acionador existir. Como o arquivo acionador é removido pelo mesmo script, seu comando é executado apenas uma vez.A sequência é então:
A configuração
Os dois pequenos scripts:
Um para criar o arquivo acionador no login:
e um dois executam o comando:
create_trigger.sh
erun_command.sh
.Adicione o seguinte comando aos aplicativos de inicialização (Dash> Startup Applications> Add)
Adicione a seguinte linha ao
/etc/crontab
arquivo (sudo nano /etc/crontab
):Agora, o comando definido é executado uma única vez dentro de um minuto após o login.
fonte