Como parar o SRM Linux?

0

Estou usando o SRM para excluir um arquivo. Já 12 horas a srm está trabalhando para deletar um arquivo de 7GB e tem apenas 3 estrelas ***

Existe uma maneira de parar ou pausar, então eu faço isso outro dia.

    
por User9532 10.12.2017 / 13:32

2 respostas

0

Um curso intensivo para matar programas de linha de comando / modo de texto

Para elaborar o comentário do @ AFH, se "SRM" for um programa de console (interface de linha de comando) e você executá-lo a partir de um terminal, pressione Ctrl-z , pois isso faz com que seu terminal envie o processo em primeiro plano gerencia esse sinal SIGSTOP e o envia para o segundo plano. Você pode então "trazê-lo de volta" executando o comando fg shell - é uma parte do chamado "job control" implementado por shells interativos e significa trazer o processo em segundo plano para primeiro plano (daí "fg") que inclui o envio o processo do sinal SIGCONT entre outras coisas.

Claro, para interromper um processo, pare. Em sistemas Unix-y, incluindo sistemas operacionais baseados em Linux, isso é feito enviando ao processo um dos sinais especiais - geralmente SIGTERM ou SIGINT . Acertar Ctrl-c em um terminal que executa um processo faz com que o processo envie o sinal SIGINT . O programa kill pode ser usado para enviar sinais arbitrários de processos arbitrários.

O problema com o uso de kill é que, para a maioria de seus usos, é necessário o usuário conhecer o chamado "PID" do processo para enviar o sinal para. O PID é um P intermediário ID - um número inteiro ≥ 1 exclusivo entre todos os processos atualmente gerenciados pelo sistema operacional.

O controle de tarefas do shell facilita, já que tem certos mnemônicos para referem-se aos processos que gerencia: se você conhece o ativo atual processo pressionando Ctrl-z , você pode usar o comando jobs para ver a lista de processos gerenciados por esse shell. Por exemplo, acabei de suspender uma instância de mutt e execute jobs depois disso; aqui está o que vejo:

~$ jobs
[1]+  Stopped                 mutt

Observe que [1]+ bit. O 1 é o identificador de trabalho atribuído a esse processo pelo shell. O + é um "identificador" para se referir ao último processo em segundo plano.

Agora, você pode usar %1 ou %+ com o comando kill para se referir a esse processo, como em

$ kill %1

ou

$ kill %+

… e todos eles enviarão SIGTERM para esse único processo em segundo plano.

É assim que você pode matar um programa de consoles mal comportado.

Mais sobre singles

Observe que os sinais SIGINT e SIGTERM podem ser "manipulados" pelo processo que recebeu um deles. Isso permite que o processo execute determinadas ações de limpeza antes desistir.

Mas às vezes um processo pode "travar" - digamos, executando uma interminável loop em uma CPU devido a um bug de programação ou por ficar preso tentando ler / escrever de / para um arquivo em algum recurso "morto", como desconectado compartilhamento de rede. Nestes casos, a entrega de SIGINT ou SIGTERM normalmente não será ser capaz de "desencadear" o processo.

Para lidar com esses casos, existe um sinal especial, SIGQUIT , que tem um número bem conhecido atribuído a ele, "9". Enviando um processo, este sinal apenas faz com que o sistema operacional forque nuke processo sem que tenha qualquer chance de intervir. É por isso que você provavelmente viu que kill -9 $pid encantation em alguns documentos.

Outras opções

Existem outras opções, é claro.

Primeiro, existem programas "fáceis de usar", como htop , que apresentar-lhe uma lista pesquisável de processos em execução e permitir-lhe para enviar qualquer um deles um sgnal de escolha.

Ambientes gráficos de desktop - como GNOME, XFCE, KDE e outros - geralmente fornecer um aplicativo GUI para fazer o mesmo.

Em segundo lugar, existem maneiras mais "hacky" de lidar com comportamentos inadequados processos para os casos em que esses "gerenciadores de tarefas" estão indisponíveis ou não se encaixa na conta por algum motivo. Aqui estão alguns deles em nenhuma ordem particular:

  • O utilitário xkill (no Debian e seu derivado está em o pacote x11-utils ), quando executado, mostra uma cruz em diagonal cursor com o qual você deve selecionar qualquer janela clicando nela, e xkill forçará a desconexão do processo que possui essa janela do servidor X (o programa que renderiza toda a sua GUI).

    O efeito dessa ação difere entre os processos, mas se você xkill uma janela do terminal ele enviará o sinal SIGHUP aos processos que gerencia, e isso geralmente os faz desistir.

  • O utilitário pkill (no Debian e seu derivado está em o pacote procps ) pode ser usado para enviar um sinal para um conjunto de processos cujo nome corresponde a uma determinada string.

    Então, se você quiser matar um processo srm , saiba que está sendo executado no seu sistema, você pode executar

     $ pkill -9 srm
    

para derrubar todos os processos denominados srm em execução no sistema.

    
por 11.12.2017 / 08:42
-1

A verdadeira resposta é aqui

TL; DR com discos modernos (e isso inclui qualquer coisa que possa conter um arquivo de 7GB), você não precisa ser tão paranóico.

Como você só precisa escrever seu arquivo com zeros:

shred -n 0 -z trashed.dat
  • onde -n 0 significa 0 passa com dados aleatórios (sem que você obtenha os 3 passes padrão com dados aleatórios, mas isso ainda é um exagero)
  • -z uma passagem final com zeros (o único necessário)

Por isso, para finalizar com eficiência sua exclusão segura:

  1. pare o comando atual
  2. execute o comando shred acima

( preparando-se para a queda súbita do kharma ... )

    
por 10.12.2017 / 15:54