Executar script na inicialização [RESOLVIDO]

1. Executar script na inicialização [RESOLVIDO]

Daniel Camilo da Silva
DebDann

(usa Debian)

Enviado em 21/07/2016 - 08:07h

Olá pessoal!
Li, testei e tentei alguns scripts que encontrei aqui mesmo no VoL e outros que pesquisei no Google porém nenhum funcionou.
Gostaria que meu script (script.sh) fosse executado na inicialização do sistema, quer seja feito login ou não ele deve ser executado.
Uso o Kali-Linux e tentei alguns scripts voltados para o Debian pois segundo li o kernel do Kali é baseado no Debian.
Desde já agradeço a ajuda.


  


2. Re: Executar script na inicialização

Bruno Anderson Ferreira Sacramento
brunoanderson

(usa Debian)

Enviado em 21/07/2016 - 09:11h

Bom dia, Daniel!

Já tentou colocar o caminho do arquivo no rc.local?

Caso tenha duvida no procedimento, é só abrir o arquivo com um editor de sua preferencia e colocar o caminho do seu script.
Obs: Prefiro usar o nano.
Comando:
nano /etc/rc.local 


Dentro do arquivo coloque o caminho do seu script anted de "exit 0".
Vai ficar mais ou menos assim:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

/caminho/do/script/script.sh

exit 0


Não se esqueça de dar permissão ao arquivo:
chmod +x /caminho/do/script/script.sh 


Espero que isso resolva seu problema!! Se não, posta aqui que damos um jeito.


3. Re: Executar script na inicialização

Daniel Camilo da Silva
DebDann

(usa Debian)

Enviado em 21/07/2016 - 10:38h

Olá brunoanderson!

Já havia feito isso, e fiz novamente...e não funcionou...
Como teste, fiz um script básico e coloquei nesse arquivo que você indicou. Ficou assim:
arquivo: teste.sh

#!/bin/bash
# Somente um teste...
echo "Sistema inicializado!!!"
leafpad &
xterm &


Salvo em: rc.local

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
/root/Documentos/teste.sh
exit 0


Também dei as permissões:
chmod +x /root/Documentos/teste.sh 


Fico a disposição de sugestões!
Obrigado!


4. Re: Executar script na inicialização [RESOLVIDO]

Bruno Anderson Ferreira Sacramento
brunoanderson

(usa Debian)

Enviado em 21/07/2016 - 11:46h

Certo... então, procedimento dispensado. rs

Já tentou criar ink simbólico para a execução na inicialização do Linux?

Comando:
update-rc.d teste.sh defaults 


Obs.: O arquivo teste.sh tem que estar dentro de /etc/init.d/.

Veja se funciona e me avisa.


5. Re: Executar script na inicialização [RESOLVIDO]

Daniel Camilo da Silva
DebDann

(usa Debian)

Enviado em 21/07/2016 - 14:24h

Já tentei sim...e apresenta esse erro:

insserv: warning: script 'teste.sh' missing LSB tags and overrides


Pesquisei e descobri que era preciso colocar um script (LSB tags) parecido com o colocado abaixo, no inicio do código:

#! /bin/sh
### BEGIN INIT INFO
# Provides: anacron
# Required-Start: $remote_fs $syslog $time
# Required-Stop: $remote_fs $syslog $time
# Default-Start: 2 3 4 5
# Default-Stop:
# Short-Description: Run anacron jobs
# Description: The first purpose of this script is to run anacron at
# boot so that it can catch up with missed jobs. Note
# that anacron is not a daemon. It is run here just once
# and is later started by the real cron. The second
# purpose of this script is that said cron job invokes
# this script to start anacron at those subsequent times,
# to keep the logic in one place.
### END INIT INFO


Mesmo assim o script não foi executado na inicialização...


6. Re: Executar script na inicialização [RESOLVIDO]

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 21/07/2016 - 14:34h

Você pode agendar via crontab.
#crontab -e
@reboot /home/user/test.sh



7. Re: Executar script na inicialização [RESOLVIDO]

Daniel Camilo da Silva
DebDann

(usa Debian)

Enviado em 21/07/2016 - 16:20h

Olá rodrigofl20 !

Nunca usei o comando crontab, então segui sua dica, e no final do arquivo que abri pelo nano (após os "#") coloquei da maneira que você citou, ficando assim:

# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
@reboot /root/Documentos/teste.sh


Reiniciei a máquina e não funcionou...
Esqueci de citar que estou a testar isso tudo em uma máquina virtual no VirtualBox.


8. Re: Executar script na inicialização [RESOLVIDO]

Rodrigo
rodrigofl20

(usa Linux Mint)

Enviado em 21/07/2016 - 16:25h

Não amigo, o crontab é uma "agenda" do linux.


Nesse caso você vai com o usuário X executar
crontab -e 
e na janela que abrir vai colocar
@reboot /root/Documentos/teste.sh 




9. Re: Executar script na inicialização

Daniel Camilo da Silva
DebDann

(usa Debian)

Enviado em 21/07/2016 - 16:45h

Foi o que eu fiz...digitei no terminal o comando:

crontab -e


Então ele pediu para eu escolher um editor de texto...selecionei o nano pois me familiarizo com ele...naveguei até o final do arquivo e coloquei o comando como você informou...perceba que coloquei o script de como ficou o arquivo após salvar.

PS: Estou usando a sessão como root.


10. Re: Executar script na inicialização [RESOLVIDO]

Bruno Anderson Ferreira Sacramento
brunoanderson

(usa Debian)

Enviado em 22/07/2016 - 08:56h

Cara, eu tive o mesmo problema a alguns dias atrás. Meu script não iniciava com o linux de jeito nenhum...
Daí eu resolvi fazer tudo denovo, desde o começo. Reinstalei o linux e coloquei o comando que eu queria no rc.local, como eu te falei.
O comando até rodou, mas por algum motivo, que eu ainda não sei qual é ele parava de rodar da nada.

Não sei se é o seu caso, mas eu só consegui fazer o script rodar com um login automático e um script na inicialização do usuário.

Se for o seu caso está aí como fazer:

Autologin:
nano /lib/systemd/system/getty@.service 

Edite a linha:
ExecStart=-/sbin/agetty --noclear %I $TERM
E coloque:
ExecStart=-/sbin/agetty --noclear -a USUÁRIO %I $TERM
PS.: Não pode ser o usuário root

Iniciar script com usuário:
logue com o usuário que vai fazer o autologin.
touch ~/.bash_profile 

edite ele o arquivo ".bash_profile" e coloque o caminho do seu script.

Não se esqueça de dar permissão ao seu script e ao arquivo ".bash_profile".

PS.: Eu fiz esse procedimento no Debian, mas acredito que dê certo pra você também.

Testa aí e dá um toque.

Abç


11. Re: Executar script na inicialização [RESOLVIDO]

Daniel Camilo da Silva
DebDann

(usa Debian)

Enviado em 22/07/2016 - 11:19h

Obrigado pelas ajudas brunoanderson !

Consegui resolver assim:
- Criei na pasta "/etc/init.d" um arquivo personalizado (AutoStartScripts.sh) para ser alimentado com os caminhos dos scripts que desejo que sejam executados na inicialização:

#!/bin/sh
### BEGIN INIT INFO
# Provides: AutoStartScript.sh
# Required-Start: $local_fs $remote_fs $network $syslog
# Required-Stop: $local_fs $remote_fs $network $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Executar scripts na inicialização.
# Description: Executar scripts personalizados na inicialização do sistema.
### END INIT INFO

# Criado e configurado para executar scripts na inicialização do sistema.
# Basta colocar o caminho do script:
# Ex:
/root/teste.sh


- Personalizei um atalho na pasta "/root/.config/autostart" com o nome de "ExecuteStart.desktop". Nele está a configuração que chama o "AutoStartScripts.sh" na inicialização da máquina, executando assim os scripts nele configurados:

[Desktop Entry]
Name=ExecuteStart
GenericName=Auto Start Scripts
Comment=Configuração de auto inicialização de scripts.
Exec=/etc/init.d/AutoStartScripts.sh
Terminal=false
Type=Application
X-GNOME-Autostart-enabled=true


Usei o comando "chmod +x" para dar permissão de execução aos arquivos "teste.sh" e o "AutoStartScripts.sh":

chmod +x /etc/init.d/AutoStartScripts.sh
chmod +x /root/teste.sh


Após isso reiniciei a máquina virtual, e o script contido no arquivo "teste.sh" foi executado perfeitamente após o login.


12. Re: Executar script na inicialização [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 22/07/2016 - 11:22h

Veja com

ls /etc/init.d/*uto*tart*cript*

se seu script foi incluído nos níveis de inicialização da máquina.

Apesar de que com Systemd isto seja menos relevante.

Daí um systemctl enable ou algo parecido resolveria.


----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden




01 02



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts