O que está chamando meu script executável * .sh?

3

Há muito tempo atrás eu copiei / modifiquei um script que usava inotify para me informar os resultados de um clamscan automático quando algo era baixado para o Downloads - segui esse recurso on-line: link .

Minha pergunta: Como descubro o que está executando este script, chamado clamscanInotify.sh ?

Embora o tutorial tenha sugerido usar crontab , o que fiz e desde então editei do meu arquivo crontab -e , esse script ainda está sendo executado de alguma forma.

Eu verifiquei;

  1. crontab do meu usuário,

  2. crontab da minha raiz,

  3. todos os cron.daily / weekly / etc,

  4. /etc/cron.d/

e não pode o que está executando o script. Eu olhei no journal using;

journalctl -b | grep cron

ou para quando eu souber o tempo aproximado que eu baixei algo,

journalctl -b | grep -e "10:00" 

Eu também usei o grep para procurar a string do nome do executável - clamscanInotify.sh ,

sudo grep -rnw / -e "clamscanInotify.sh",

mas não encontrou a string em nenhum lugar, nem mesmo em /etc/ .

Eu não tenho o at/atd daemon e não consigo pensar no que mais fazer para procurar o que está chamando esse script executável, clamscanInotify.sh .

Também não está na seleção "Startup Applications" do Linux Mint usando a GUI para a área de trabalho.

Eu não quero simplesmente excluir o arquivo * .sh, mas minha tela e terminais preenchendo com zenity janelas e mensagens são irritantes.

Alguma ideia de onde procurar?

PS

Aqui está uma foto do meu (h)top ;

    
por nate 05.11.2018 / 22:46

1 resposta

3

O caminho mais lento seria usar PS: o que "ps -o comm = -p $ PPID" faz para capturar o (s) processo (s) pai (s) até encontrar algo interessante.

Como você está usando o bash no script, adicione:

ps -o pid=,comm= -p $PPID

e redirecionar isso para um arquivo temporário. Inspecione o conteúdo desse arquivo e, em seguida, inspecione a árvore pai; se, por exemplo, esse arquivo contiver:

8815 bash

depois siga com:

ps -o ppid=,comm= -p 8815

onde aqui estamos pedindo o pai pid e o comando do processo 8815.

Com um sistema Linux, insira pstree -s -p $$ para solicitar a cadeia de ancestralidade para o processo atual ( $$ ).

Em algum momento, você terminará com o gerenciador de área de trabalho ou qualquer outro método usado para fazer login.

É perfeitamente possível que um dos seus scripts de inicialização do bash esteja configurando isso; Eu tomaria emprestada esta resposta, por exemplo e executaria algo como:

bash -ix </dev/null 2>trace

e, em seguida, pesquise o arquivo trace do script inotify em questão. Como a resposta vinculada também diz, as melhores estimativas iniciais são:

  • ~/.bash_profile
  • ~/.profile
  • ~/.bash_login
  • /etc/profile
  • ~/.bashrc

... e nesse caso você pode tentar:

grep clamscanInotify.sh ~/.bash_profile ~/.profile ~/.bash_login /etc/profile ~/.bashrc
    
por 05.11.2018 / 23:08