node.js with nvm with systemd
先のこたつ記事の補足というか何というか
サラッと Hubot を常駐と書きましたが、当然そのサービスの自動起動には systemd を使いたいですね? 使いたいですね? 使いましょう。
systemd 氏は実行ユーザーなんかも指定できるわけですが、環境変数の設定までは面倒を見てくれないので、そのへんをやっていく必要があります。
nvm でインストールしたお好きなバージョンの node で Unit ファイルを書くと、おおよそ次のような感じになります。
[Unit] Description=Hoge Requires=network.target After=network.target [Service] Type=simple WorkingDirectory=/path/to/application User=<user> Environment=ENV=production ExecStart=/home/<user>/.nvm/versions/node/<version>/bin/node <mainfile>.js [Install] WantedBy=multi-user.target
kotatsubot の場合は次のようになっています。
/etc/systemd/system/kotatsubot.service
[Unit] Description=KotatsuBot Requires=network.target After=network.target [Service] Type=simple WorkingDirectory=/home/kotatsu/kotatsubot User=kotatsu Restart=always RestartSec=10 Environment=PATH=/home/kotatsu/.nvm/versions/node/v6.9.1/bin HUBOT_SLACK_TOKEN=hogehoge ExecStart=/home/kotatsu/kotatsubot/bin/hubot --name kotatsubot -a slack -l kotatsu [Install] WantedBy=multi-user.target
Note that, ExecStart の1つめの実行ファイル名に記述できるのはフルパスのみです。$PATH も見てくれないし変数も展開してくれない。甘えるな。.js はフルパスじゃなくて良いの だって WorkingDirectory してるから
/usr/local/nvm
なんかにシステムワイドに nvm をインストールしている場合もほぼ同じ方法が取れるはずです。
この方法だと nvm の設定によらずバージョンが固定されてしまうじゃないかという議論*1はあるのですが、僕はむしろ実行バージョンが固定されない方がヤなのでこの方法をとっています。あと ExecStart からラッパースクリプト呼ぶの好きじゃないんですよね(原理主義)。bin/hubot
だってラッパーじゃないかと言われると返す言葉がありませんが。
なんなら bin/hubot
に1行 . /home/user/.nvm/nvm.sh
と書き足すのもいいかと思います。
以上、よき systemd ライフを。
Internet of こたつ
現代日本において必需の暖房器具とされているこたつ。皆さんのご家庭にもこたつは実装されているものと思います。
(Figure.1 こたつ)
皆さんこのような経験はありませんでしょうか。
「一日中こたつのスイッチ入れっぱなしで外出してしまい電気代がマッハ」
「家に帰ったら即あったかいこたつにスライドインしたい」
今回はそのような問題の解決を目指すべく、インターネットに繋がったこたつを作りました。
猫も杓子もアイオオティーの時代です。流行りには乗っていきましょう。
遅くなりました。こちらは klis Advent Calendar 2016 6日目の記事、klis14のかみかみがお送りします。
続きを読むクリスマスまでに彼女を作る
文脈です。
いなふ「今年のクリスマスまでに彼女作ります」
— しんさく (@lapis_zero09) 2016年9月19日
いなふ「今年のクリスマスまでに彼女作ります」
— ピーマン先輩(伊藤さん) (@pmannet_r) 2016年9月19日
そんな悠長にしてらんなくない????
— だいのう (@made_up_123) 2016年9月19日
2年半かけてロードマップ作ってるし、さすがにそろそろ完成するっしょw
— だいのう (@made_up_123) 2016年9月19日
というわけで、スケジューリングをしました。
クリスマスを納品日と考えて、今日からプロジェクト開始です。やっていきましょう。
作っておいてなんなんですが、彼女づくりには不確定要素が多く、スケジューリングはあくまで目安として実際の開発ではアジャイルに柔軟に対応していくと双方にとり良い結果が生み出せると思います。
頑張って下さい。
「ガールズ&パンツァー 劇場版」を12回観た話
こんばんは。「ガールズ&パンツァー 劇場版」、観てますか。僕は観てます。
この記事を読んでくださっている皆さんはガルパンについてはよくご存知だと思うので詳細な説明は省きますが、ともあれ公開27週目にしてめでたく全国153館での再上映が決定し、いよいよ明日から*1上映が始まります。
僕はといえば、今年の頭にTVシリーズを一気見して劇場に吶喊して以降ドハマりしてしまい、また音響に力を入れていることで知られる立川にあるシネマシティの「極上爆音上映」に行って以降、劇場ごとの音響の違いを楽しむことの良さに気付き、あちこちの劇場を回り、気づけば10回以上も観る羽目になってしまいました。 それでも観るたびに劇場ごとの個性に感動し、新たな発見をし、「今回が最高だった」という気持ちになるのがガルパンです。
今回は自分なりにメモっていた感想を公開したいと思います。全ての劇場が再上映対象という訳ではありませんが、劇場選びの一助になれば幸いです。 ネタバレはありませんが、ちょくちょく劇中の用語を出すので視聴前提の文章ではあります。
★は完全に気分なので、目安程度にしてください。
おしながき
- MOVIXつくば
- シネマ・ツー b studio
- シネマ・ツー a studio
- シネプレックス水戸
- USシネマつくば
- 塚口サンサン劇場
- シネマサンシャイン平和島 imm sound シアター
- シネマサンシャイン平和島 4DXシアター
- イオンシネマ幕張新都心 ULTIRA上映
- シネマサンシャイン平和島 imm sound(2回目)
- USシネマパルナ稲敷
- シネマ・ツー a studio (新)
*1:書いているうちに今日になってしまった
Dolphinのファイル関連付けにxdg-openを指定すると
当たり前だがkde-openとxdg-openが互いに起動しあってつらいことになるぞ
新年の抱負
2016年が始まってから40時間ちょっと経った気がします。新年あけましておめでとうございます。
今年は見逃し三振を無くそうと思います。よろしくお願いします。
見逃し三振 【みのがし-さんしん】
必須課題未提出やテストに出席せず単位を落とすこと