質問編集履歴

2

解決まとめ

2016/12/02 18:21

投稿

hanayamaKaoru
hanayamaKaoru

スコア36

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,54 @@
12
12
 
13
13
 
14
14
 
15
+ ###結論
16
+
17
+ 解決策1
18
+
19
+ 対象プロセスについての設定ファイルがあればそれを編集する
20
+
21
+ 自分の場合は以下のように目的プロセスの.plistを編集し、再起動を行った
22
+
23
+ ~/Library/LaunchAgents/com.usbmux.iproxy.plist
24
+
25
+ にて記述した
26
+
27
+
28
+
29
+ <key>RunAtLoad</key>
30
+
31
+ <false/>
32
+
33
+ <key>KeepAlive</key>
34
+
35
+ <false/>
36
+
37
+
38
+
39
+ 解決策2
40
+
41
+ 対象のプロセスが親プロセスから起動されている場合
42
+
43
+ 親プロセスをkill
44
+
45
+
46
+
47
+ 手順1.目的のプロセスID(PID)と親プロセスのID(PPID)を確認する
48
+
49
+ $ ps axj |grep "プロセス名などで検索結果を絞る"
50
+
51
+ 手順2.親プロセスをkill
52
+
53
+ $sudo kill -9 先ほど確認したPPID
54
+
55
+
56
+
57
+
58
+
59
+
60
+
61
+
62
+
15
63
  ###補足1
16
64
 
17
65
  0. 1
@@ -132,6 +180,38 @@
132
180
 
133
181
 
134
182
 
183
+ ###課題解決後の補足
184
+
185
+ 0. 1
186
+
187
+ 今回のプロセス.plistは(または共通して?)はOSのブート時に一度だけ読みこまれるようだ
188
+
189
+
190
+
191
+ そもそも、誰が読み込み、利用しているのか
192
+
193
+ それを調べるために以下のコマンドが役に立つかもしれない
194
+
195
+ *'com.usbmux.iproxy.plist'はプロセスの設定ファイルなので自分が対象としているプロセスのものと置き換える
196
+
197
+ ```ここに言語を入力
198
+
199
+ $find / 2> /dev/null -type f | xargs -n 10 grep 2> /dev/null -n 'com.usbmux.iproxy.plist' --color
200
+
201
+ ```
202
+
203
+
204
+
205
+ 'com.usbmux.iproxy.plist'を利用して対象プロセスを起動しているファイルが見つかるかもしれない
206
+
207
+
208
+
209
+ ブート時に自動的に読み込んでいるアプリケーションはシステム環境設定から
210
+
211
+ 確認や操作を行うことができるが
212
+
213
+ アプリではない自動的に読み込まれるファイルはどこで確認すればいいのやら。。
214
+
135
215
 
136
216
 
137
217
  ###発生している問題・エラーメッセージ

1

指摘事項を試行

2016/12/02 18:21

投稿

hanayamaKaoru
hanayamaKaoru

スコア36

test CHANGED
File without changes
test CHANGED
@@ -12,6 +12,128 @@
12
12
 
13
13
 
14
14
 
15
+ ###補足1
16
+
17
+ 0. 1
18
+
19
+
20
+
21
+ ```ここに言語を入力
22
+
23
+ $ ps axj |grep 2222
24
+
25
+ USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
26
+
27
+ name 2539 1 2539 0 1 S ?? 0:00.00 /usr/local/bin/iproxy 2222 22
28
+
29
+
30
+
31
+ ```
32
+
33
+
34
+
35
+ PID = PGID =2539 (iproxy)
36
+
37
+ PPID = 1 (root)
38
+
39
+
40
+
41
+ 親プロセスはない(?)ようです
42
+
43
+ 0. 2
44
+
45
+ ```ここに言語を入力
46
+
47
+ $ syslog -B|grep iproxy
48
+
49
+
50
+
51
+ ```
52
+
53
+ syslogコマンドやコンソールでiproxyについて調べましが
54
+
55
+ 自らが行なったkillコマンドしか表示されませんでした
56
+
57
+
58
+
59
+ 0. 3
60
+
61
+
62
+
63
+ ~/Library/LaunchAgents/com.usbmux.iproxy.plist
64
+
65
+ にて記述した
66
+
67
+ <key>RunAtLoad</key>
68
+
69
+ <true/>
70
+
71
+ <key>KeepAlive</key>
72
+
73
+ <true/>
74
+
75
+ についてですが同様にpsコマンドで調べたところそのようなプロセスは存在しませんでした
76
+
77
+
78
+
79
+ iproxyコマンドがあるフォルダ/usr/local/bin/でも調べて見ましたが
80
+
81
+ そのようなコマンドは存在しませんでした
82
+
83
+
84
+
85
+ 0. 4
86
+
87
+
88
+
89
+ 当たり前ですが、/usr/local/bin/iproxyをゴミ箱に送り
90
+
91
+ killコマンドを実行すればプロセスは再開されることはありません
92
+
93
+ しかし、ゴミ箱からiproxyを戻すと数秒後にはプロセスが再開されています
94
+
95
+
96
+
97
+ 0. 5
98
+
99
+
100
+
101
+ どのファイルから使用されているかを追うことを試みましたが..よくわかりませんでした
102
+
103
+
104
+
105
+
106
+
107
+ ```ここに言語を
108
+
109
+
110
+
111
+ $ lsof /usr/local/bin/iproxy
112
+
113
+ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
114
+
115
+ iproxy 2944 name txt REG 1,4 19076 3809280 /usr/local/bin/../Cellar/usbmuxd/1.0.10_1/bin/iproxy
116
+
117
+ ```
118
+
119
+
120
+
121
+ 0. 6
122
+
123
+
124
+
125
+ username/usbmuxd-1.0.8/tools/iproxy.c
126
+
127
+ の中身を確認しましたが
128
+
129
+ 実行引数から引数を受け取り、ソケットを確立しwhile(1)で無限ループさせていましたが
130
+
131
+ その中でコマンドを受け取り停止させるような記述はなかったのでiproxyに命令してプロセスを終了させることはできないと思います
132
+
133
+
134
+
135
+
136
+
15
137
  ###発生している問題・エラーメッセージ
16
138
 
17
139
  killしたプロセスがすぐにぺつのPIDで再開される
@@ -28,7 +150,7 @@
28
150
 
29
151
  $ opam install usbmux
30
152
 
31
- #usbmuxから得たiprocyを使用しポート2222を確保
153
+ #usbmuxから得たiproxyを使用しポート2222を確保
32
154
 
33
155
  $ iproxy 2222 22
34
156