Com base em algumas postagens aqui, tento executar um script simples para limpar uma pasta com conteúdo temporário ao reiniciar e desligar.
Seguindo as instruções e os READMEs, escrevi este script:
/etc/init.d/cleantmp
#!/bin/sh
### BEGIN INIT INFO
# Provides: cleantmp
# Required-Start:
# Required-Stop: $local_fs
# Default-Start:
# Default-Stop: 0 1 6
# Short-Description: clean temporary folders
# Description:
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
echo "Clean up temporary folders"
rm -rf /home/user/tmp/*
Então eu dei os direitos de execução:
$ sudo chmod +x /etc/init.d/cleantmp
$ ls -l /etc/init.d/cleantmp
-rwxr-xr-x 1 root root 329 Dec 19 12:50 /etc/init.d/cleantmp
Então eu atualizo o rc:
$ sudo update-rc.d cleantmp defaults
$ ls -l /etc/rc?.d/*cleantmp
lrwxrwxrwx 1 root root 18 Dec 19 13:12 /etc/rc0.d/K01cleantmp -> ../init.d/cleantmp
lrwxrwxrwx 1 root root 18 Dec 19 13:12 /etc/rc1.d/K01cleantmp -> ../init.d/cleantmp
lrwxrwxrwx 1 root root 18 Dec 19 13:12 /etc/rc6.d/K01cleantmp -> ../init.d/cleantmp
Até agora tudo bem. Mas após o desligamento e início ou reinicialização, os arquivos temporários ainda existem. Se eu chamar diretamente um dos links simbólicos usando sudo
os arquivos, eles desaparecerão corretamente.
O que há de errado aqui?
SO: Linux 4.4.0-104-genérico #127-Ubuntu | Ubuntu Gnome 16.04.3 LTS 64 bits
Há três coisas importantes erradas:
rc
script van Smoorenburg, quando o Ubuntu 16 é um sistema operacional systemd e está de fato em seu segundo sistema init desde o uso de van Smoorenburgrc
há mais de uma década. Não comece com van Smoorenburgrc
se estiver fazendo coisas novas no Ubuntu Linux.rc
Você escreveu um roteiro de van Smoorenburg mal , não seguindo as instruções ou o exemplo nainit-d-script
página de manual (5). Seurc
script não responde adequadamente aos vários subcomandos com os quais esses scripts são chamados, para começar, ou fonte da biblioteca de funções padrão Debian/Ubuntu.Com base no princípio de não começar com coisas que estão mais de uma década desatualizadas no Ubuntu Linux, jogue isso fora.
clean-user-tmp.conf
arquivo em/etc/tmpfiles.d
, ou/etc/systemd/system/clean-user-tmp.service
algo como e ative-o com , ou/home/user/.local/share/systemd/user/clean-tmp.service
e habilite-o com .Leitura adicional