山口です。 並さん、 > /etc/fstab から /dev/shm のエントリを削除しても良いのかどうかわからなかったことと、 /dev/shm は POSIX 共有メモリで必要とされるようです。 ただし、SYSV 共有メモリでは不要なようです。 参考: http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.6/filesystems/tmpfs.txt.html Vine Linux の /usr/src/linux/configs/kernel-2.4.31-*.config では、 SYSV 共有メモリ = yes なので、普通問題ないと思いますが、/dev/shm のエントリの削除は 注意したほうがよいと思います。 SYSV 共有メモリ = yes でカーネルをコンパイルしていますし、/dev/shm エントリも そのままにしてあります。 > しかし、vi がすべておかしくなるならともかく、crontab だけというのが不思議な一件でした。 私も前から気になっていたので、ちょっと調べました。 crontab -e は、 f = ファイルを作る (ex. "/tmp/crontab.99999") mtime = f の mtime エディタに f を渡し、子プロセスとして産む (エディタ・プロセスが起動 -> 終了する) エディタ・プロセスの終了を待つ mtime == f の mtime # <= この比較がポイント mtime に違いがなければ終了。 ("no changes made to crontab" を出力) のように動くようです。 で、エディタの違いによりどうなるかですが、 ===== [gedit の場合] ====== $ pwd /tmp (別term: EDITOR=gedit crontab -e) $ ls -li crontab* 14294 -rw------- 1 kazuto kazuto 434 Nov 8 12:05 crontab.2279 (別term: crontab で編集/保存) $ ls -li crontab* 14338 -rw------- 1 kazuto kazuto 486 Nov 8 12:06 crontab.2279 14294 -rw------- 1 kazuto kazuto 434 Nov 8 12:05 crontab.2279~ (別term: crontab 終了) =========================== ===== [vi の場合] ====== $ pwd /tmp (別term: EDITOR=vi crontab -e) $ ls -li crontab* 14379 -rw------- 1 kazuto kazuto 434 Nov 8 12:06 crontab.2285 (別term: crontab で編集/保存) $ ls -li crontab* 14379 -rw------- 1 kazuto kazuto 486 Nov 8 12:07 crontab.2285 (別term: crontab 終了) ========================= gedit の動作イメージは、 (file をバッファに読み込む) mv file file~ # バックアップ (バッファ の file に対して編集) のようになってます。 crontab -e は gedit 終了後の比較で、**ファイル名が 'file' のものでなく** gedit 起動前に open していたファイル(= file~) の mtime と、事前保存していた mtime を比較する(当然、同じもの)ので、ファイル更新なし、と誤認されるようです。 磯部@ナムコさんの [vine-users:073465] > ~/.vimrc に「set cp」を書くと回避できます。 > 編集中にコマンドで打っても有効です。 私の環境では、:se cp? は vi、crontab -e 経由の vi ともに nocompatible です。 vi の動作イメージが、/dev/shm を使う(あるいはパッケージの違い?)で 何故変わる(?)のかは謎が残ります。 -- 山口 和人 (Kazuto YAMAGUCHI) <kazuto-y@xxxxxxxxxxxxxxxx>