Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

13. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Uoslo2
woslofote

(usa Calculate)

Enviado em 04/10/2017 - 13:07h

p4ulodi4s escreveu:

Coloque os comandos dentro do arquivo /etc/rc.local.

certifique-se de colocar os seus comandos antes do comando exit que já deve existir no arquivo.

Senão encontrar o arquivo, rode esse comando para procurar:

locate rc.local 


Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


Olá amigo,
O arquivo ou diretório não foi encontrado. Mais idéias? :\



  


14. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 04/10/2017 - 13:16h

Procure com o locate.

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


15. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Uoslo2
woslofote

(usa Calculate)

Enviado em 04/10/2017 - 13:43h

p4ulodi4s escreveu:

Procure com o locate.

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


Adicionei ao arquivo antes do "exit". Porém o Script ainda não inicia automaticamente. :\




16. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 04/10/2017 - 14:35h


O script tem permissão de execução?

Poste o conteudo do arquivo rc.local. Outra dúvida, você achou o arquivo em outra localização ou criou um novo?

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


17. Re: Como executar comandos automaticamente ao iniciar o sistema?

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/10/2017 - 16:05h

Tudo errado, seus orcs imundos.
O Systemd é compatível com os scripts do sysvinit, mas os desenvolvedores recomendam utilizar os métodos próprios desse diabo.
O Deepin usa o Systemd, não? Tenho quase certeza que sim.
Antes de tudo, certifique-se que o seu script tem permissão de execução!
No /etc/systemd/system/, crie um serviço, de acordo com o manual, com o sufixo .service (leia-se: nome_do_meu_script.service), com o seguinte (ou equivalente, modifique de acordo com suas necessidades) conteúdo:

 
[Unit]
Description="Minha linda descrição de como o serviço funciona."

[Service]
Type=oneshot
ExecStart=/caminho/absoluto/do/script

[Install]
WantedBy=default.target


Depois:
 $ su root -c "systemctl enable nome_do_meu_script.service && systemctl start  nome_do_meu_script.service" 


Pronto.

 Gu kibum kelkum-ishi, burzum-ishi. Akha-gum-ishi ashi gurum...  



18. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

19. Re: Como executar comandos automaticamente ao iniciar o sistema?

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 04/10/2017 - 16:35h

morgoth_bauglir escreveu:

Tudo errado, seus orcs imundos.
O Systemd é compatível com os scripts do sysvinit, mas os desenvolvedores recomendam utilizar os métodos próprios desse diabo.
O Deepin usa o Systemd, não? Tenho quase certeza que sim.
Antes de tudo, certifique-se que o seu script tem permissão de execução!
No /etc/systemd/system/, crie um serviço, de acordo com o manual, com o sufixo .service (leia-se: nome_do_meu_script.service), com o seguinte (ou equivalente, modifique de acordo com suas necessidades) conteúdo:

 
[Unit]
Description="Minha linda descrição de como o serviço funciona."

[Service]
Type=oneshot
ExecStart=/caminho/absoluto/do/script

[Install]
WantedBy=default.target


Depois:
 $ su root -c "systemctl enable nome_do_meu_script.service && systemctl start  nome_do_meu_script.service" 


Pronto.

 Gu kibum kelkum-ishi, burzum-ishi. Akha-gum-ishi ashi gurum...  


Pode ser feito conforme você comentou, mas não vejo porquê usar a compatibilidade é errado...

Os desenvolvedores do deepin parecem não ter a mesma opinião que você: https://wiki.deepin.org/index.php?title=Autostart_program&language=en .

Você já ouviu falar do principio KISS?

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


20. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/10/2017 - 17:00h

p4ulodi4s escreveu:
Pode ser feito conforme você comentou, mas não vejo porquê usar a compatibilidade é errado...

Porque ela não é total e pode falhar.
https://www.freedesktop.org/wiki/Software/systemd/Incompatibilities/

Os desenvolvedores do deepin parecem não ter a mesma opinião que você: https://wiki.deepin.org/index.php?title=Autostart_program&language=en .

Eles podem falar qualquer borracha, estou discutindo o systemd, a documentação oficial dele é a melhor fonte.

If a service is requested under a certain name but no unit configuration file is found, systemd looks for a SysV init script by the same name (with the .service suffix removed) and dynamically creates a service unit from that script. This is useful for compatibility with SysV. Note that this compatibility is quite comprehensive but not 100%. For details about the incompatibilities, see the Incompatibilities with SysV document.


http://0pointer.de/public/systemd-man/systemd.service.html
https://www.freedesktop.org/software/systemd/man/systemd.service.html

Você já ouviu falar do principio KISS?

Sim. Também curto um chamado RTFM.

Gu kibum kelkum-ishi, burzum-ishi. Akha-gum-ishi ashi gurum...  



21. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 04/10/2017 - 17:11h

Entendi.

Leia apenas a documentação que eu quero... Parabéns pelo seu conhecimento.

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


22. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/10/2017 - 17:26h

p4ulodi4s escreveu:

Entendi.

Leia apenas a documentação que eu quero... Parabéns pelo seu conhecimento.

Não sei se você se ofendeu, mas essa não era a ideia. Apenas resolvi alertar aos nobilíssimos colegas dos possíveis perigosos de se utilizar o rc.local nesse caso.
Eu também só leio a documentação que me interessa, o intuito do meu post foi apenas demonstrar com o auxílio da documentação o meu ponto de vista.


Gu kibum kelkum-ishi, burzum-ishi. Akha-gum-ishi ashi gurum...  



23. Re: Como executar comandos automaticamente ao iniciar o sistema?

Paulo Dias
di4s

(usa XUbuntu)

Enviado em 04/10/2017 - 18:24h

Não se preocupe com isso...

Quando digo "Leia apenas a documentação que eu quero", me refiro a você pedir para ler a documentação do systemd e esquecer qualquer 'borracha' escrita pela distribuição e por suas bases...

Note que a compatibilidade do rc.local no Debian, e por consequência no Deepin, é implementada de forma semelhante a que você sugeriu... A diferença é que os desenvolvedores entregam o arquivo .service pronto e disponibilizam o arquivo rc.local para que o usuário chame seus scripts.

Veja:


paulo@notebook:~$ systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static)
Active: active (exited) since Qua 2017-10-04 17:21:55 -03; 9min ago
Process: 573 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)



paulo@notebook:~$ cat /lib/systemd/system/rc-local.service
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
SysVStartPriority=99


Assim, é possível fazer do jeito que você sugeriu, mas é possível, de forma mais simples e sem ser errado, ter o mesmo resultado usando o rc.local.

Linux Professional Institute - LPIC-1
Novell Certified Linux Administrator - CLA
Oracle Certified Associate, Java SE Programmer - OCA

http://twitter.com/p4ulodi4s
http://www.prminformatica.com.br/


24. Re: Como executar comandos automaticamente ao iniciar o sistema? [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 04/10/2017 - 18:37h

p4ulodi4s escreveu:

Não se preocupe com isso...

Quando digo "Leia apenas a documentação que eu quero", me refiro a você pedir para ler a documentação do systemd e esquecer qualquer 'borracha' escrita pela distribuição e por suas bases...

O software é o mesmo, pouquíssima coisa foi mudada nas implementações na maioria das distribuições que o utilizam.

As documentações especificas de cada distribuição podem conter detalhes importantes. Note que a compatibilidade do rc.local no Debian, e por consequência no Deepin, é implementada da mesma forma que você sugeriu... A diferença é que os desenvolvedores entregam o arquivo .service pronto e disponibilizam o arquivo rc.local para que o usuário chame seu scripts.

É bom e ruim ao mesmo tempo.
Ruim porque pode "enganar" alguns usuários (fazendo-os pensar que o arquivo de configuração para .services do usuário é no rc.local).
Bom porque facilita a transição entre o sysvinit e systemd.

Veja:


paulo@notebook:~$ systemctl status rc-local.service
● rc-local.service - /etc/rc.local Compatibility
Loaded: loaded (/lib/systemd/system/rc-local.service; static)
Active: active (exited) since Qua 2017-10-04 17:21:55 -03; 9min ago
Process: 573 ExecStart=/etc/rc.local start (code=exited, status=0/SUCCESS)



paulo@notebook:~$ cat /lib/systemd/system/rc-local.service
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.

# This unit gets pulled automatically into multi-user.target by
# systemd-rc-local-generator if /etc/rc.local is executable.
[Unit]
Description=/etc/rc.local Compatibility
ConditionFileIsExecutable=/etc/rc.local
After=network.target

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
SysVStartPriority=99

Já sabia disso, o próprio systemd criou esse service.

Assim, é possível fazer conforme você sugeriu, mas é possível, de forma mais simples, ter o mesmo resultado usando o rc.local.

O resultado pode até ser parecido, mas não é nem de longe mais simples.
Ao criar o .service direto no /etc/systemd/system, como manda a documentação, o systemd só lerá um arquivo de configuração, fazendo diretamente o que foi colocado lá.
E se utilizar essa 'adaptação'? Lerá este e o conteúdo dele, que referenciará outro script! Não é mais simples colocar direto no systemd?


Gu kibum kelkum-ishi, burzum-ishi. Akha-gum-ishi ashi gurum...  




01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts