課題 解決策 対策概要 発生状況 対策詳細 所感 注意 参考 課題 subprocessモジュールを利用して外部のシェルスクリプトを起動することがある。そのシェルスクリプトにおいて子プロセス(バックグラウンドプロセスなど)が動作している最中に、subprocessで設定したtimeoutが発生した。このとき、直接起動したシェルスクリプトのプロセスはkillされるが、その子プロセスは残存しているようだ。timeoutが発生した際には子プロセスも含めてkillしたいがどうすればよいか。 解決策 対策概要 起動するプロセスを別のセッションとして管理し、python の timeout 例外 catch において、プロセスグループ ID に対してkill する。 発生状況 最初に「課題」の状況が発生する様子を示す。以下のようなスクリプトを用意した。シェルスクリプトでは(subprocessで設定し
Bash on Windowsが強化、Linux版のJavaやGo、PostgreSQLなどもWindowsで実行可能に。3月リリースのWindows 10 Creators Updateで マイクロソフトは来月(2017年3月)登場予定のWindows 10の大型アップデート「Windows 10 Creators Update」で、Windowsに取り込んだLinux機能の「Bash on Ubuntu on Windows」とその背後にある「Windows Subsystem for Linux」(以下、両者をまとめて「Bash on Windows」に省略)の強化を行い、これまで実行が困難だったLinux版のJavaやPostgreSQLなども実行可能になることを、2月8日(日本時間2月9日未明)のイベント「Windows Developer Day - Creators Upda
全般的に非力なマシンやサーバでXMLをパースするのはちょっと面倒だったり、プログラム書くの面倒だったりするので、できればシェルだけでXML分解できないかなーっていう、管理人の考えから。 xmllintコマンドを使って分解すればいいじゃん、という結論に至り、スクリプトを書いてみた。 xmllintは redhat系だとlibxml2のパッケージに含まれている debian系だとlibxml2-utilsに入っている OSXは10.3以降は標準で入っていて、見当たらないときはApple Developerで拾ってくる 大まかな使い方 xpathを使う場合は--xpathですが、シェルで使うので--shellオプションを付けます まずは、xmlの標準書式に従っていないデータを校正する必要があったりするので、その場合は xmllint --format "元のファイル" > "標準化したファイル"
DoRuby! (ドルビー!) は現場のエンジニアによる、主にRubyなどの技術に関する様々な実践ノウハウを集めた技術情報サイトです。 find コマンドの -mtime オプションを指定することで最後にデータが修正された日時で検索することができます。 日時の指定方法も色々あるのですが、個人的にわかりづらかったので以下のパターンだとどのような結果になるのか、実際に動かしてみることにしました。 試すパターン find -mtime 日数 find -mtime +日数 find -mtime -日数 結果からいうと、 find -mtime -3 3日(72時間)前〜現在 find -mtime 3 3日(72時間)前〜4日(96時間)前 find -mtime +3 4日(96時間)前〜過去 こうなります。 とりあえず、確認用のファイルを適当に作って試してみます。 touch -t 07
Linux の seq コマンドは、シンプルな数列を作ってくれる。例えば、1 から 10 までの数字を表示させるには次のやうにする。 $ seq 10 1 2 3 4 5 6 7 8 9 10 途中の数字から始めたい場合は、その数字を第一引数にとる。5 から 10 までの数字列を得る場合の例は次の通り。 $ seq 5 10 5 6 7 8 9 10 このコマンドを何に使うのかというと、shell script の中で連番ファイルを作成するのに活用する。例えば、こんな感じ。 #!/bin/bash for i in `seq 10`; do echo $i.jpg done echo コマンドの代わりに、wget を使えば、連番ファイルのダウンロード。touch コマンドを使えば、連番ファイルの作成。etc... さて、10 個以上の連番ファイルを作る場合、0 パディングを加えておくと便利
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く