Sim - você está consumindo memória com esses scripts. Você realmente tem dois processos em execução, usando memória:
- um shell (por exemplo, bash)
-
sleep
em si.
sleep
será extremamente leve, mas o shell pode consumir alguns megabytes de memória. No meu sistema um bash não interativo inativo consome ~ 1MiB e um sono 0.7MiB. Você pode verificar ps
ou top
(veja a coluna RSS) - embora muito desse total seja na verdade coisas como bibliotecas que são compartilhadas entre todos os processos que as utilizam. Ao todo, é provável que < 1MiB cada.
No Linux, você pode obter mais detalhes em /proc/pid/status
(e /proc/pid/smaps
); os Vm*
são de interesse aqui. Por exemplo:
bash -c 'grep Vm /proc/$$/status'
VmPeak: 13380 kB
VmSize: 13380 kB
VmLck: 0 kB
VmPin: 0 kB
VmHWM: 972 kB
VmRSS: 972 kB
VmData: 220 kB
VmStk: 132 kB
VmExe: 208 kB
VmLib: 2320 kB
VmPTE: 48 kB
VmPMD: 12 kB
VmSwap: 0 kB
Você pode ver o total de RSS (quantidade de RAM usada) de 972 kB, dos quais 220 kB são "dados" (normalmente não compartilhados) e 132 kB são de pilha (também não compartilhados). Então, cada bash extra que sai correndo é bem pequeno.
Alguns conselhos : se você tiver que fazer um monte de soluções alternativas como essa ... por que você não pode usar o cron? Essa é uma abordagem mais simples e mais limpa, muito menos provável de ter bugs inesperados (rápido! Como o sleep 1d
manipula a alteração do horário de verão? O que acontece se o seu sono retornar mais cedo porque foi SIGTERM como parte de uma reinicialização / desligamento? ). Se o seu administrador de sistema estiver preocupado com pessoas não autorizadas agendando tarefas agendadas, aponte-o para /etc/cron.allow
e /etc/cron.deny
; aqueles estão documentados em crontab (1).