Existe alguma maneira de adicionar um aplicativo / script à inicialização do Linux para que toda vez que o sistema inicialize, ele seja executado?
Estou procurando uma maneira automatizada, ou seja, o usuário não deve adicionar isso pelo trabalho cron ou algo parecido.
Respostas:
Algo como Cron ?
Observe a
@reboot
entradaEssa é a abordagem mais flexível e mais semelhante às "Tarefas agendadas" do Windows (melhor na verdade).
fonte
/etc/cron.d
ou ligar para o crontab do seu programa sem que eles saibam.Início automático do Xorg
Além dos scripts de inicialização no nível do sistema, o ambiente da área de trabalho pode ter sua própria maneira de executar programas automaticamente. A pasta
.config/autostart
deve ser uma maneira neutra para a área de trabalho de definir entradas de execução automática./etc/xdg/autostart
é para configuração em todo o sistema. Detalhes sobre as especificações em http://developer.gnome.org/autostart-spec/ .Para o LXDE, as entradas de inicialização automática também podem ser definidas
~/.config/lxsession/LXDE/autostart
.É um pouco diferente se você precisar executar seus scripts depois que a rede estiver em funcionamento. Nesse caso, você deve verificar os scripts especiais pós-conexão que podem ser definidos para o seu gerente de rede. O NetworkManager e o wicd têm suas próprias maneiras de especificar entradas de execução automática pós-conexão. Se a rede estiver configurada via
ifupdown
, os scripts de pós-up podem ser colocados na/etc/network/if-up.d/
pasta. Mas uma abordagem melhor para executar scripts pós-conexão pode ser systemd (para sistemas que o suportam, que é a maioria das distribuições modernas).Iniciar automaticamente como um serviço systemd
Se o que você deseja iniciar automaticamente não é um aplicativo gráfico que requer uma área de trabalho, é melhor evitar o uso de qualquer recurso de inicialização automática fornecido pelo xorg ou pelo seu ambiente de área de trabalho atual.
systemd
tornou-se onipresente em muitas distribuições modernas e oferece muito controle e flexibilidade em termos de como seus serviços são iniciados e como eles são executados.Resumirei alguns benefícios (o systemd pode fazer muito mais ):
User=myuser
Restart=on-failure|on-watchdog|on-abnormal|always
Type=simple|forking|oneshot|notify|dbus
Wants=network-online.target
na[Unit]
seção).Um serviço de exemplo que inicia um daemon telegram-cli. Coloque-o em
/etc/systemd/system/tg.service
.Agora você pode ativar o serviço para iniciar automaticamente:
Inicie o serviço:
Pare o serviço:
Verifique o status:
Desative o serviço:
Para economizar sua digitação extra, você pode adicionar na sua
~/.bashrc
linhaalias sc='sudo systemctl $*'
e poderá reduzir os comandos acima para, por exemplosc start tg
.Mais informações:
fonte
Sim, é possível executar programas na inicialização do Linux, definindo os caminhos para os executáveis
rc.local
que residem no diretório/etc
ou/etc/rc.d
, por exemplo:Nota: não esqueça de atribuir direitos executáveis conforme descrito na documentação do arquivo, ou seja,
Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure that this script will be executed during boot.
fonte
cron
agendador é seu amigo.Startup applications
usando o botão homeAdd
Startup command box
digite o comandoOK
(Você deverá ver seu novo comando na lista)Close
Teste reiniciando ou efetuando logout e logon novamente.
Fonte: https://help.ubuntu.com/community/AddingProgramToSessionStartup
fonte
Cada distribuição usa cada técnica de inicialização, portanto, é necessário consultar os documentos da sua distribuição. O /etc/rc.local é um lugar onde você pode colocar alguns scripts automatizados, mas está realmente desatualizado. Agora, a maioria dos sistemas baseados em Linux usa níveis de execução ou inicialização do sistema, de modo que a maioria dos trabalhos iniciados automaticamente podem ser controlados com uma boa classificação.
fonte
Encontrei minha resposta aqui: /programming/7221757/run-automatically-program-on-startup-under-linux-ubuntu Consegui criar um arquivo / script para desligar meu trackpad enquanto estava no minha sessão do Linux Ubuntu 12.10.
fonte