teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

2

解決まとめ

2016/12/02 18:21

投稿

hanayamaKaoru
hanayamaKaoru

スコア36

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,30 @@
5
5
 
6
6
  http://iphonedevwiki.net/index.php/SSH_Over_USB
7
7
 
8
+ ###結論
9
+ 解決策1
10
+ 対象プロセスについての設定ファイルがあればそれを編集する
11
+ 自分の場合は以下のように目的プロセスの.plistを編集し、再起動を行った
12
+ ~/Library/LaunchAgents/com.usbmux.iproxy.plist
13
+ にて記述した
14
+
15
+ <key>RunAtLoad</key>
16
+ <false/>
17
+ <key>KeepAlive</key>
18
+ <false/>
19
+
20
+ 解決策2
21
+ 対象のプロセスが親プロセスから起動されている場合
22
+ 親プロセスをkill
23
+
24
+ 手順1.目的のプロセスID(PID)と親プロセスのID(PPID)を確認する
25
+ $ ps axj |grep "プロセス名などで検索結果を絞る"
26
+ 手順2.親プロセスをkill
27
+ $sudo kill -9 先ほど確認したPPID
28
+
29
+
30
+
31
+
8
32
  ###補足1
9
33
  0. 1
10
34
 
@@ -65,7 +89,23 @@
65
89
  実行引数から引数を受け取り、ソケットを確立しwhile(1)で無限ループさせていましたが
66
90
  その中でコマンドを受け取り停止させるような記述はなかったのでiproxyに命令してプロセスを終了させることはできないと思います
67
91
 
92
+ ###課題解決後の補足
93
+ 0. 1
94
+ 今回のプロセス.plistは(または共通して?)はOSのブート時に一度だけ読みこまれるようだ
68
95
 
96
+ そもそも、誰が読み込み、利用しているのか
97
+ それを調べるために以下のコマンドが役に立つかもしれない
98
+ *'com.usbmux.iproxy.plist'はプロセスの設定ファイルなので自分が対象としているプロセスのものと置き換える
99
+ ```ここに言語を入力
100
+ $find / 2> /dev/null -type f | xargs -n 10 grep 2> /dev/null -n 'com.usbmux.iproxy.plist' --color
101
+ ```
102
+
103
+ 'com.usbmux.iproxy.plist'を利用して対象プロセスを起動しているファイルが見つかるかもしれない
104
+
105
+ ブート時に自動的に読み込んでいるアプリケーションはシステム環境設定から
106
+ 確認や操作を行うことができるが
107
+ アプリではない自動的に読み込まれるファイルはどこで確認すればいいのやら。。
108
+
69
109
  ###発生している問題・エラーメッセージ
70
110
  killしたプロセスがすぐにぺつのPIDで再開される
71
111
 

1

指摘事項を試行

2016/12/02 18:21

投稿

hanayamaKaoru
hanayamaKaoru

スコア36

title CHANGED
File without changes
body CHANGED
@@ -5,6 +5,67 @@
5
5
 
6
6
  http://iphonedevwiki.net/index.php/SSH_Over_USB
7
7
 
8
+ ###補足1
9
+ 0. 1
10
+
11
+ ```ここに言語を入力
12
+ $ ps axj |grep 2222
13
+ USER PID PPID PGID SESS JOBC STAT TT TIME COMMAND
14
+ name 2539 1 2539 0 1 S ?? 0:00.00 /usr/local/bin/iproxy 2222 22
15
+
16
+ ```
17
+
18
+ PID = PGID =2539 (iproxy)
19
+ PPID = 1 (root)
20
+
21
+ 親プロセスはない(?)ようです
22
+ 0. 2
23
+ ```ここに言語を入力
24
+ $ syslog -B|grep iproxy
25
+
26
+ ```
27
+ syslogコマンドやコンソールでiproxyについて調べましが
28
+ 自らが行なったkillコマンドしか表示されませんでした
29
+
30
+ 0. 3
31
+
32
+ ~/Library/LaunchAgents/com.usbmux.iproxy.plist
33
+ にて記述した
34
+ <key>RunAtLoad</key>
35
+ <true/>
36
+ <key>KeepAlive</key>
37
+ <true/>
38
+ についてですが同様にpsコマンドで調べたところそのようなプロセスは存在しませんでした
39
+
40
+ iproxyコマンドがあるフォルダ/usr/local/bin/でも調べて見ましたが
41
+ そのようなコマンドは存在しませんでした
42
+
43
+ 0. 4
44
+
45
+ 当たり前ですが、/usr/local/bin/iproxyをゴミ箱に送り
46
+ killコマンドを実行すればプロセスは再開されることはありません
47
+ しかし、ゴミ箱からiproxyを戻すと数秒後にはプロセスが再開されています
48
+
49
+ 0. 5
50
+
51
+ どのファイルから使用されているかを追うことを試みましたが..よくわかりませんでした
52
+
53
+
54
+ ```ここに言語を
55
+
56
+ $ lsof /usr/local/bin/iproxy
57
+ COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
58
+ iproxy 2944 name txt REG 1,4 19076 3809280 /usr/local/bin/../Cellar/usbmuxd/1.0.10_1/bin/iproxy
59
+ ```
60
+
61
+ 0. 6
62
+
63
+ username/usbmuxd-1.0.8/tools/iproxy.c
64
+ の中身を確認しましたが
65
+ 実行引数から引数を受け取り、ソケットを確立しwhile(1)で無限ループさせていましたが
66
+ その中でコマンドを受け取り停止させるような記述はなかったのでiproxyに命令してプロセスを終了させることはできないと思います
67
+
68
+
8
69
  ###発生している問題・エラーメッセージ
9
70
  killしたプロセスがすぐにぺつのPIDで再開される
10
71
 
@@ -13,7 +74,7 @@
13
74
  ```
14
75
  $ brew install opam
15
76
  $ opam install usbmux
16
- #usbmuxから得たiprocyを使用しポート2222を確保
77
+ #usbmuxから得たiproxyを使用しポート2222を確保
17
78
  $ iproxy 2222 22
18
79
  ```
19
80
  port2222を解放したい