여기에 있는 일부 게시물을 기반으로 재부팅 및 종료 시 임시 콘텐츠가 포함된 폴더를 정리하는 간단한 스크립트를 실행해 보았습니다.
지침과 추가 정보에 따라 다음 스크립트를 작성했습니다.
/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/*
그런 다음 실행 권한을 부여했습니다.
$ 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
그런 다음 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
여태까지는 그런대로 잘됐다. 그러나 종료하고 시작하거나 다시 시작한 후에도 임시 파일은 그대로 남아 있습니다. sudo
파일을 사용하여 심볼릭 링크 중 하나를 직접 호출하면 올바르게 사라집니다.
여기에 문제가 있나요?
운영 체제: Linux 4.4.0-104-일반 #127-Ubuntu Ubuntu Gnome 16.04.3 LTS 64비트
답변1
세 가지 주요 오류가 있습니다.
rc
Ubuntu 16이 시스템 OS이고 실제로 그 위에 있었을 때 van Smoorenburg 스크립트를 작성했습니다.두번째rc
van Smoorenburg가 10여년 전에 사용한 이래로 init 시스템이 사용되었습니다.rc
Ubuntu Linux에서 새로운 작업을 하고 있다면 van Smoorenburg로 시작하지 마세요.- 당신은 Van Smulenberg의
rc
각본을 썼습니다.진지하게,아니요init-d-script
(5) 매뉴얼 페이지의 지침이나 예를 따르십시오. 우선,rc
스크립트는 그러한 스크립트를 호출하는 다양한 하위 명령에 올바르게 응답하지 않으며 Debian/Ubuntu 표준 함수 라이브러리에 액세스할 수도 없습니다. - LSB 헤더가 잘못되었습니다.
원칙적으로 우분투 리눅스에서 10년 이상 된 것으로 시작해서 버리지 마세요.
- 직접
clean-user-tmp.conf
파일 을 작성/etc/tmpfiles.d
하거나 /etc/systemd/system/clean-user-tmp.service
자신에게 다음과 같은 것을 써보세요[단위] 문서=https://unix.stackexchange.com/a/411804/5132 설명=삭제~사용자/tmp/ [제공하다] 사용자=사용자 ;피해야 할 일반적인 실수: ;* 또는 ~가 확장될 것으로 예상 ;명령의 절대 경로 이름을 사용하지 마십시오 ; safe-rm이 설치되어 있지 않으면 /bin/rm을 교체하십시오. ExecStart=/usr/bin/rm -r -f -- ${HOME}/tmp/ [설치하다] WantedBy=다중 사용자.대상
활성화하고systemctl은 clean-user-tmp.service를 활성화합니다.
, 또는- 직접 작성
/home/user/.local/share/systemd/user/clean-tmp.service
하고 활성화하세요.systemctl --사용자가 clean-tmp.service를 활성화합니다.
.