Linuxで再帰的に親のプロセスIDから一番最下層のプロセスから停止するスクリプト
pgrepで子プロセスのIDを取得して、
再帰的に同様のことを繰り返し、子プロセスがいない親プロセスIDを
killすることで順番としては最下層の子プロセスからkillする作りです。
まぁもっと良い方法があるのかもしれないですがね。
#!/bin/bash
function f_kill_proc()
{
local pid=${1}
local child_pid=`pgrep -P ${1}`
sleep 1
if [ "x${child_pid}" != "x" ];then
echo "まだ子プロセス共がいるぜ。"
for child in ${child_pid}
do
echo "やっちゃうぜ!"
func_stop_proc ${child}
done
fi
kill -9 ${pid}
}
f_kill_proc 100
Ubuntu8.10で固定IPアドレスを割り振る
$ sudo view /etc/network/interface
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 #iface eth0 inet dhcp =>DHCPで割り当てを行われているのでコメントアウトする #以下を追加する。 iface eth0 inet static address 192.168.11.51 # 固定IPアドレス netmask 255.255.255.0 # サブネットマスク gateway 192.168.11.1 # デフォルトゲートウェイ
networkの再起動を行う。
$ sudo /etc/init.d/network restart
非機能要件を書いてみる
今回仕事でシステム要件定義を書くことがあったんだけどもなかなか難しかったところ、
いいのがあったのでメモ。
システム基盤の発注者要求を見える化する非機能要求グレード検討会
http://www.nttdata.co.jp/nfr-grade/result/index.html
ここのマトリックスを基に項目を埋めていくといいもんできますよー
プロジェクトマネージメント手法のメモ。
今回の例題として、
チームとして超過時間が長いためモチベーションが下がる。
まず4つのステージに分けて考える。
Stage1 find Problem(解析)
- 残業(結論「consequence」であって問題ではない)
Stage2 resource、Time(エスティメーション(約:予想))
- 改善を行うためにどれくらいの可能性があるか大雑把に数値化する?
- 今までのプロセスを刷新する(実現可能性:1%)
- プロセスの半自動化を図る(実現可能性:90%)
- 人的リソースを増やし役割を明確にする(実現可能性:40%)
etc....
Stage3 Coordonation(チームで解決方法の決定(バックアップソリューションも用意)ManagementMeeting)
ユーザの要望:100<=真ん中:80=>90:こちら側の要望(ハーバード流交渉術)
相手にもこちらもWIN-WINになるような解決案とする。
- ユーザにはタスクをチョイスしてもらう。プライオリティ付けはこちら側で主導権を握る。
1.longMeeting
+-------------------------> fixSol1 <------------------------ユーザ
+-------------------------> fixSol1_bk(オリジナルに近い)-----+
+--プライオリティ(UntilDate)
|
+-------------------------> fixSol2 <------------------------ユーザ
+-------------------------> fixSol2_bk(オリジナルに近い)-----+
+--プライオリティ(UntilDate)
- プライオリティの主導権はこちらが持つ。
- 理由:いろいろな物の作成順序を決めれるから。例えばドキュメントが欲しいというに決まってるから。プロセスマネージメントから行う方が容易い。
- 交渉のための戦略(strategy negotiation)で予想を作成。
Stage4 Final Project Settings(最終決定、デッドライン、誰がいつまでやるの?)
- detail a plan:計画を詳細に練り上げる
- PMP(プロジェクトマネージメントプロフェッショナル)
- クラシックプロジェクトマネージメントを用いる(スタンダードテクニック)
問題=>解決方法=>デッドライン=>誰
- なんでブレストするか?
ブレインストーミングの目的は。。。
- FIX問題
- 新しい解決方法
みんなのアイデアはブレインストーミングマトリックス化
meeting =片方向=>team
ブレスト<=双方向=>team
マネージメント(情報)=>team<=ブレスト=>team
- ブレストはまずは問題から。(ex。レビューが長い)
- なんでレビュー長いかを考える(問題の理由を掘り下げる)
CUに参加したい!!
こういうのってどこからアカウントを皆さんは入手しているんだろう。
vbsでpingを打ち続ける
pingを打って落ちたら何かアクションをしたい場合があると思われます。
但しこのコードだとWSH5.6ではないと動作しません。
WSH5.6でも動作する方法はないこともないのですがそのうち。。。
Option Explicit
Dim args
Dim s_SvrName
Dim s_ip
Dim pingStat
Dim Ping
Dim objWMIService
Dim PingSet
'##### 引数でサーバ名を取得 ####
Set args = WScript.Arguments
s_SvrName = args.item(0)
'まずは0をセットしてLoopさせる。
pingStat = 0
'0以外ならLoopから抜ける
Do While pingStat = 0
pingStat = ping_check(s_SvrName)
Wscript.Sleep(1000)
Loop
'えせエラーロジック
'本来であればErr.NumberでキャッチすべきだがPing疎通の戻り値で判定する。
If pingStat = 11010 Then
WScript.Echo "Exit Code:0を戻す"
Wscript.Quit(0)
Else
WScript.Echo "Exit Code:1を戻す"
Wscript.Quit(1)
End If
Function ping_check(s_ip)
Set objWMIService = GetObject("winmgmts:\\.")
Set PingSet = objWMIService.ExecQuery ("Select * From Win32_PingStatus Where Address = '"& s_ip &"'")
For Each Ping In PingSet
Select Case Ping.StatusCode
Case 0
Wscript.Echo Now() & " Ping Successful"
ping_check = 0
Case 11010
Wscript.Echo Now() & " Request Timed Out"
ping_check = 11010
Case Else
MsgBox "エラー"
ping_check = 1
End Select
Next
End Function