Rodar um Shell Script ao iniciar um programa no Ubuntu?

1. Rodar um Shell Script ao iniciar um programa no Ubuntu?

Henrique
henriqueterra

(usa Ubuntu)

Enviado em 24/06/2016 - 20:46h

Sou iniciante em Shell Script. Tenho que fazer um trabalho para meu curso e decidi fazer um programa que pede senha antes de iniciar o Firefox. O código está assim:


#!/bin/bash

senha=$(zenity --password --title "Firefox" --text "Insira a senha para continuar para o Firefox");

if [ "$senha" = "12345678" ]; then
/usr/bin/firefox &
else

zenity --error --title "Firefox" --text "Senha incorreta!";

fi



Mas a questão é: O Script só roda quando eu o executo pelo terminal. Como eu faço pra ele rodar quando eu iniciar o Firefox?


  


2. Re: Rodar um Shell Script ao iniciar um programa no Ubuntu?

Perfil removido
removido

(usa Nenhuma)

Enviado em 24/06/2016 - 20:52h

Copie o lançador do firefox para ~/.local/share/applications e edite-o deixando o caminho para o script onde tem o parâmetro "Exec="

$ cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
$ gedit ~/.local/share/applications/firefox.desktop
Exec=caminho/para/script



3. Não entendi direito

Henrique
henriqueterra

(usa Ubuntu)

Enviado em 24/06/2016 - 21:43h

PauloHAC escreveu:

Copie o lançador do firefox para ~/.local/share/applications e edite-o deixando o caminho para o script onde tem o parâmetro "Exec="

$ cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
$ gedit ~/.local/share/applications/firefox.desktop
Exec=caminho/para/script


Pelo que entendi eu tenho que entrar no código do lançador e alterar o "Exec=", certo? Eu entrei no lançador e não tem o "Exec=", eu tenho que criar? Se sim, como?


4. Re: Rodar um Shell Script ao iniciar um programa no Ubuntu?

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 24/06/2016 - 22:30h

É bem mais simples do que parece, olhe:

#!/bin/bash

#
# Este script faz uma coisa bem legal).....................#
#

while true; do
if [ ! -z $(pgrep firefox) ]; then
kill -15 $(pgrep firefox) &>/dev/null
if [ $(zenity --password) == '12345678' ]; then
nohup firefox-esr
else
zenity --error --text="Senha incorreta"
fi
else
sleep 1
fi
done


Teste-o dê as permissões e tente executar o firefox e verá como funciona, é impressionante o que dá para fazer com alguns if's e else's

OBS: Não sou muito bom com comentários desculpe. Ele fica sentado e esperando o firefox executar e quando ele perceber que está executando pedirá a senha e se a senha for a errada ele avisa.


=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





5. Re: Rodar um Shell Script ao iniciar um programa no Ubuntu?

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/06/2016 - 00:08h

henriqueterra escreveu:

PauloHAC escreveu:

Copie o lançador do firefox para ~/.local/share/applications e edite-o deixando o caminho para o script onde tem o parâmetro "Exec="

$ cp /usr/share/applications/firefox.desktop ~/.local/share/applications/
$ gedit ~/.local/share/applications/firefox.desktop
Exec=caminho/para/script


Pelo que entendi eu tenho que entrar no código do lançador e alterar o "Exec=", certo? Eu entrei no lançador e não tem o "Exec=", eu tenho que criar? Se sim, como?


O "Exec-" tá lá sim, procura com calma que vc encontra ;)
Aqui tem um mais enxuto (tirando o excesso de idiomas), vc pode usá-lo:
[Desktop Entry]
Version=1.0
Name=Firefox Web Browser
Name[pt_BR]=Navegador Web Firefox
Comment[pt_BR]=Navegue na Internet
GenericName[pt_BR]=Navegador Web
Keywords=Internet;WWW;Browser;Web;Explorer
Keywords[pt_BR]=Internet;WWW;Browser;Web;Explorador;Navegador
Exec=firefox %u (substitua pelo script)
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=firefox
Categories=GNOME;GTK;Network;WebBrowser;
MimeType=text/html;text/xml;application/xhtml+xml;application/xml;application/rss+xml;application/rdf+xml;image/gif;image/jpeg;image/png;x-scheme-handler/http;x-scheme-handler/https;x-scheme-handler/ftp;x-scheme-handler/chrome;video/webm;application/x-xpinstall;
StartupNotify=true
Actions=NewWindow;NewPrivateWindow;

[Desktop Action NewWindow]
Name=Open a New Window
Name[pt_BR]=Abrir nova janela
Exec=firefox -new-window
OnlyShowIn=Unity;

[Desktop Action NewPrivateWindow]
Name=Open a New Private Window
Name[pt_BR]=Abrir nova janela privativa
Exec=firefox -private-window
OnlyShowIn=Unity;



6. Re: Rodar um Shell Script ao iniciar um programa no Ubuntu?

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 25/06/2016 - 00:46h

Na minha opinião, como é um "trabalho escolar" e tem certa importância, se for alterado somente o atalho fica uma brecha no intuito que é bloquear algo com uma senha porque a qualquer momento um usuário poderá abrir um terminal e executar o programa pela linha de comando burlando a ideia geral da coisa. Criando um script que escute o programa fica mais "seguro", isto é somente minha opinião.





=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================





7. Re: Rodar um Shell Script ao iniciar um programa no Ubuntu?

Perfil removido
removido

(usa Nenhuma)

Enviado em 25/06/2016 - 10:08h

ctw6av escreveu:

Na minha opinião, como é um "trabalho escolar" e tem certa importância, se for alterado somente o atalho fica uma brecha no intuito que é bloquear algo com uma senha porque a qualquer momento um usuário poderá abrir um terminal e executar o programa pela linha de comando burlando a ideia geral da coisa. Criando um script que escute o programa fica mais "seguro", isto é somente minha opinião.





=====================================================================
Não existe saber mais ou saber menos, existem saberes diferentes.
=====================================================================




Considerando este ponto vc tem razão. O seu script parece ser mais razoável :)






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts