サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
yukithm.blogspot.com
systemd 213からsystemd-timesyncdというSNTPクライアント機能が追加されて、ntpdやchronyの代わりに使えるようになったんだけど、どうも仮想マシンでは起動しないようになってるようで、VM上のArch Linuxでは使えなかった。 timesyncd: do not start in virtualized environments · 01b85ba · systemd/systemd 使い方 ntpdやchronyを使用している場合は無効にする。 sudo systemctl stop ntp.service sudo systemctl disable ntp.service systemd-timesyncdの設定をする。 sudo -e /etc/systemd/timesyncd.conf [Time] NTP=ntp.nict.jp Fallb
vagrantでCakePHPの環境を作ろうと思って色々ハマったのでメモ。 ちなみにゲストOSはCentOS7。 やろうとしたこと ローカルの(vagrant upしたディレクトリの)app/配下を共有フォルダとしてマウント appにCakePHPをインストール 共有フォルダとしてマウントした/app/webrootをapacheのドキュメントルートにする /app配下はapacheユーザで書き込みできるようにする vagrantのprovisioningでphp、apache、CakePHPのインストールと設定を行う ハマりポイント1 最初、apacheで書き込みができるようにということで、synced_folderのオプションでgroupをapacheにし、グループ向けのパーミッションを指定してみた。 config.vm.synced_folder "./app", "/app", c
Rubyから外部コマンドを起動して、一定時間が経過しても終了しなかったらkillする、という処理をしようと思って次のようなコードを書いてみた(実際にはSTDOUT, STDERRを取るなどもっと複雑)。 #!/bin/sh # Rubyから呼び出される外部コマンド echo "do something" sleep 30 echo "done something" # 外部コマンドを実行してタイムアウトしたらkillする require "timeout" cmd = "/tmp/heavy.sh" pid = spawn(cmd) thr = Process.detach(pid) begin Timeout.timeout(3) do thr.join end rescue Timeout::Error puts "execution expired" Process.kill(:TE
とあるアプリから外部コマンドを実行する機能を実装していたんだけど、ふと気がついたらゾンビプロセスが大量にできていて焦った。 とあるアプリはデーモンプロセスでずっと生きている 外部コマンドは終了を待たなくていいし出力も取らなくていい ゾンビができちゃうダメな実装 とにかく実行すればいいってことで単純に次のようなコードを書いていた。 forkしてexecするだけという至って単純な実装(実際にはSTDOUTを/dev/nullに向けるとか色々あるけど)。 # 外部コマンドを実行する # コマンドの出力とか終了には興味がない def run_command(command) fork do puts "child: pid=#{Process.pid}, ppid=#{Process.ppid}" exec(command) end end puts "app: pid=#{Process.pid
systemd v210からsystemdはudevとnetworkdによるネットワーク設定がサポートされるようになった。 これを利用するとNetworkManagerやnetctlといったものを利用せずにsystemd自身でネットワークの設定が行えるようになる(既存のネットワークマネージャの類を使い続けることもできる)。 以下はArch Linuxでの例を挙げるけど、CoreOSやDebianなどでもだいたい同じだと思う。 networkdの設定ファイル systemd-networkdでの設定は/etc/systemd/networkディレクトリに.network、.netdev、.linkファイルを配置していくことになる。 .networkファイル …… マッチするデバイスにネットワークを設定するファイル。 .netdevファイル …… マッチする環境に仮想ネットワークデバイスを作成
Rubyでワーカースレッドな並列処理がしたくて、なんかいいライブラリないかなーと探してたら見つけたのが次のふたつ(+おまけ)。 workers thread 並列処理だとparalellが有名だけど、これは最初に決まった数のタスクがたくさんあって、mapやeachするとその部分がスレッド化してわーっと一斉にやるような感じなので、ちょっと自分が求めているものとは違った。 今回欲しかったのはそういうのではなくて、ちょうどWebサーバみたいな感じにぽつぽつとタスクがやってきてそれをワーカースレッドに割り振って処理させるようなやつ。 で、rubygems.orgやruby-toolbox.comを見て良さそうだなと絞ったのが上記のふたつ(これのほうがいいよ!とかあったら教えて下さい)。 RubyのQueueははじめからスレッド間のFIFOとして設計されているので、これを使えば自分でも簡単にワーカー
このページを最初にブックマークしてみませんか?
『yukithm.blogspot.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く