Linux
coreutils
sync

sync; sync; sync; haltの伝承

ご存知 sync 3回

syncって何?

  • RHEL系のLinuxマシンならCoreutilsに入ってる sync コマンドのこと
  • sync コマンドとはメモリにバッファされているデータをディスクに書き込むコマンド

sync 3回って何?

  • syncを3回やってからマシンの電源を落とすという民間伝承がある
  • 例えばこういうコマンドが有名
# sync
# sync
# sync
# halt
  • え!知らない?君は若い!こんなところでこんな記事を読んでいる場合ではない。他の有用な記事を読んでほしい
  • 出口はこちら→ https://qiita.com/

どうして3回なの?

このような説が一般的

  • 研究室の先生がやれと言ってた
  • 会社の先輩がやれと言ってた
  • shutdownコマンドでシングルユーザモードになってsyncを3回ののち電源スイッチで電源を切る
  • 1回目はfsに同期要求を出す
    • 2回目は1回目の同期要求が完了しないと返ってこないので2回目が返ってくれば同期がとれている
    • syncの3回目は気休め
  • 心理的に打っておくと安心できる
  • システムの電源を落とすときにsync3回を打つ時間に内省する
  • Solaris、SunOSでもやっている(やっていた)
  • 紅茶を淹れるときのおまじない:One for me, one for you, one for pot (god).

syncする意味あるの?

  • 現代(おおよそ2000年代以降)のOSでは必要がない 1

どうしてsyncしなきゃいけなかったの?

  • メモリの内容をハードディスクに自動的に書き込まなかったOSがあったころの名残
  • sync3回は、ハードディスク以前のしきたりが残った(という記事があるので探してみるといいかも)
  • そんな本を書きました:「なぜsyncを3回打つのか」
  • 詳しく知りたい方はこっち↓でお確かめ下さい(ダイレクトマーケティング)2
  • C94(夏コミ) 1日目 西め38a「第7開発セクション」でお待ちしてます3
  • 正確には西め38abで「第7開発セクション」「松浦リッチ研究所」の合体サークルです
  • 本はCOMIC ZINに委託します

  1. 1990年代ころにはほぼ廃れていたはず。安全を期して2000年代とした。このへんは伝承でしか残っていないので確かめる術がない 

  2. この記事が消されたらそういうことかーって思って下さい 

  3. おそらく筆者はいません。近いけど別のところにいます