Location via proxy:   
[Report a bug]   [Manage cookies]                

揮発性のメモ2

知識をメモ書きしておく

wgetでAPIを叩く

wgetコマンドでAPIをアクセスする
ローカルにファイルを残さずに

wget -O- -o /dev/stderr "http://192.168.2.2/hoge/alarm.php?ID=TEST01&CMD=ALARM"
-O -

ファイルを標準出力に出力する定番オプション

-o /dev/stderr

動作ログを標準エラー出力に出力
普通はいらないけど、バックグラウンド動作をさせるときは ログが wget-log というファイルに出力されるので それを変更したいときに使う

URLは "" で括る

とくに、 & が入っているときは そこで バックグラウンド動作になってしまう
余計なトラブルが一気に増えるので、普段から忘れずに " " で括る習慣をつける

phpで、requireの中で定義した変数をglobalでglobalに使う


a.php
<?php
$SETTING = [1,2,3];
b.php
#!/usr/bin/php -q
<?php
require_once "a.php";

echo $SETTING[0];

このとき、普通に b.php を実行するとちゃんと 1 が出力される。a.phpで定義した変数が正しく認識されている。

しかし、PhpStormでは 未定義です とか言ってエラー扱いになる。 なんでだよ



回避策は、(本来は無駄で無意味だが) global 宣言を書いてしまう

b2.php
#!/usr/bin/php -q
<?php
require_once "a.php";
global $SETTING;

echo $SETTING[0];

ユーザがログインしてログアウトすると、そのユーザの作ったmqueueが消える

systemdの設定で RemoveIPC とかいう機能がデフォルトで有効になっていて、そのユーザーのセッションがすべてログアウトされるとそのユーザーが使用していたIPCリソースがすべて消える というとんでもない仕様。
共有メモリ、セマフォ、メッセージキュー とか。POSIX も System V もどっちもアウト。

この仕様のおそろしいところ

あるユーザ権限で起動しているサービスがメッセージキュー等を使っているとき、そのユーザがログインして作業してログアウトすると 動かなくなる。
びっくりしてシステムを再起動すると動作は正常に戻る。
しかし、遠隔ログインして状況を確認し うん大丈夫 と安心してログアウトするとまた死ぬ。
かといって調査を放棄しログインしなくなれば問題なく動作し続けるので、本当にキツネにつままれた気分になる


もともとは、GUI環境とかでユーザーがデスクトップからログアウトするとかしてセッションが全部なくなった時に 残ったリソースを全部掃除するのが目的のオプションらしい。

こう直して再起動することで回避できる

/etc/systemd/logind.conf
[Login]
#RemoveIPC=yes
RemoveIPC=no
systemctl restart systemd-logind.service
続きを読む

PhpStormで、閉じ括弧入力時に自動で整形する機能を無効化する

} を打つたびに 不細工に整形される不具合を回避する


エディター ⇒ 一般 ⇒ スマートキー から 「'}' 入力時にブロックを整形する」 のチェックボックスをオフにする
日本語化していないときは Reformat block on typing '}' を検索する

lftp

今のLinuxにはなんかftpコマンドが無くて、代わりに lftp というコマンドになってた。
パッケージ名は lftp

dnf install -y lftp

使い方

# lftp -u ユーザー名,パスワード -p ポート番号 ホスト名
lftp -u user,pass -p 8000 192.168.1.10

コマンドラインにパスワードが書けるのは 実利全振りでセキュリティ意識が欠片も感じられなくて好き