追加読書

追加読書

ここにあるいくつかの投稿に基づいて、再起動と終了時に一時コンテンツを含むフォルダを整理する簡単なスクリプトを実行してみました。

指示と追加情報に従って、次のスクリプトを作成しました。

/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ファイルを使用してシンボリックリンクの1つを直接呼び出すと、正しく消えます。

ここに問題がありますか?


オペレーティングシステム: Linux 4.4.0-104-一般 #127-Ubuntu Ubuntu Gnome 16.04.3 LTS 64ビット

答え1

3つの主なエラーがあります。

  • rcUbuntu 16がシステムOSで、実際にその上にあったときにvan Smoorenburgスクリプトを作成しました。第二rcvan Smoorenburgが10年以上前に使用して以来、initシステムが使用されてきました。rcUbuntu Linuxで新しい作業をしている場合は、van Smoorenburgで始めないでください。
  • あなたはVan Smulenbergのrc脚本を書いた。真剣にいいえinit-d-script(5) マニュアルページの指示や例に従ってください。まず、rcスクリプトはそのようなスクリプトを呼び出すさまざまなサブコマンドに正しく応答せず、Debian / Ubuntu標準関数ライブラリにアクセスすることもできません。
  • LSBヘッダーが無効です。

原則としてUbuntu Linuxで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を有効にします。

追加読書

関連情報