blog.monophile.net

コンピュータのこととかのメモ。

Takaaki Yamamoto

東京工業大学において計算機科学と応用数学を学び、 情報科学芸術大学院大学[IAMAS] においてメディア表現を専攻し修了。 現在は digitiminimi Inc. において、インフラエンジニアとして生計をたててている。

work

各種システム構築と管理を承ります。

Cloud PlatformOpenstack, GCP, AWS, Azure, ...
Openstackkeystone, glance, cinder, swift, neutron, nova, ...
VirtualizationQEMU+KVM, LXD/LXC, Docker, ...
OSDebian GNU/Linux, Ubuntu, CentOS, ...
NetworksIPSec, L2TP, VXLAN, WirelessAP, ...
WebAppsWordPress, GitLab, Redmine, ...
Configuration ManagementAnsible, Terraform, ...
MonitoringNagios, Munin, ...

posts

いきさつ

デーモンを一つだけ簡単に起動したい。 つまりロックしたいわけです。 そういう時はflockというコマンドを使えば良いみたい。

flockとnohupを使う

ロック機能を使うためには何でも良いのでファイルが必要なのでlockfileを生成し、 それを用いて“sleep 3600”というデーモンもどきを起動します。

$ touch lockfile
$ nohup flock --timeout 0 lockfile -c "sleep 3600" &
$ nohup flock --timeout 0 lockfile -c "sleep 3600" &

これで2行目のコマンドは成功しますが、3行目のコマンドは失敗します。 つまり一つだけのプロセスが走っている状態になります。

備考

このやり方はすごく簡易的なモノだと思うので、 厳密なシステムでロック機構を使う場合は違う方法をお試しください。

参考URL