yuicho@brain:~# tail -f /dev/memory

備忘録。このブログについては https://yuicho.hateblo.jp/about を見やがれ。

ファイルがなくなったら処理を走らせるワンライナー

これなに?

ファイルが消えるまで待って消えたら所定の処理をしたいときのワンライナー

よくあるパターンは/proc/##pid##とかして##pid##のプロセスが消滅するまで待つとか。rsync終わったらメール通知とか。

CentOSでしか検証してないので、他のOSで動くかは知らん!

はよワンライナー書けや

さーせん。

while [ -e (チェックするファイルのパス) ]; do sleep (チェック間隔); done; (行わせる処理)

自分には需要ないけど、一応見やすくしたやつ。

需要ないのになぜ書く。

while [ -e (チェックするファイルのパス) ]; do
  sleep (チェック間隔)
done

(行わせる処理)

そんなことせんでも

Linuxのwaitコマンドを使うことで、プロセスやジョブの終了を待つことができます。

【wait】Linuxで指定したプロセス・ジョブの終了を待つコマンド | UX MILK

えぇ…

マジックSysRqキー

どういう時に使う?

例えば

サーバーが重たくなりすぎてコンソールからの操作も受け付けてくれないンゴ!
∩(´;ヮ;`)∩ンヒィ~~~~~~~

みたいな時にsysrq使うとOOM発動できたりできる

使い方

キーシーケンスは、Altキー、SysRqキーおよびその他のキー(コマンドキー)を同時に押下する
キーボードにSysRqキーがない場合は、プリントスクリーンキーで代用する

Wiki調べ*1

PrintScreenキーにFnキーを併用する必要があるかのように青文字で書かれてるキーボードがあるけど、Fnキーを併用する必要はないらしい?(むしろ併用すると効かなくなる)

とりあえず何も考えず頭の悪い人になってAlt+SysRq(PrintScreen)+コマンドキーで良さそう。

キー割り当て表

動作 キー
X Windowからキーボードを奪う r
ヘルプを出す h
メモリの状況を見る m
oom_killを召喚 f
init(PID:1)以外を kill e
init(PID:1)以外を kill -9 i
キャッシュ分をディスクに書き込み s
全FileSystemをread-onlyでReMount u
即座に再起動 b

ってことは結局やばいときはどうしたらええのん???

とりあえずメモリが足りなさそうなら

Alt+SysRq(PrintScreen)+f連打タイプ

もうどうにもならんので再起動したいとき

Alt+SysRq(PrintScreen)を押したままで、(r→)eisub