質問: 1 (root) 親プロセスはない(?)ようです 1. 2 ``` $ syslog -B|grep iproxy ``` syslogコマンドやコンソールでiproxyについて調べましが 自らが行なったkillコマンドしか表示されませんでした 1. 3 ~/Library/LaunchAgents/com.usbmux.iproxy.plist にて記述した RunAtLoad KeepAlive についてですが同様にpsコマンドで調べたところそのようなプロセスは存在しませんでした iproxyコマンドがあるフォルダ/usr/local/bin/でも調べて見ましたが そのようなコマンドは存在しませんでした 1. 4 当たり前ですが、/usr/local/bin/iproxyをゴミ箱に送り killコマンドを実行すればプロセスは再開されることはありません しかし、ゴミ箱からiproxyを戻すと数秒後にはプロセスが再開されています 1. 5 どのファイルから使用されているかを追うことを試みましたが..よくわかりませんでした ``` $ lsof /usr/local/bin/iproxy COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME iproxy 2944 name txt REG 1,4 19076 3809280 /usr/local/bin/../Cellar/usbmuxd/1.0.10_1/bin/iproxy ``` 1. 6 username/usbmuxd-1.0.8/tools/iproxy.c の中身を確認しましたが 実行引数から引数を受け取り、ソケットを確立しwhile(1)で無限ループさせていましたが その中でコマンドを受け取り停止させるような記述はなかったのでiproxyに命令してプロセスを終了させることはできないと思います ### 課題解決後の補足 1. 1 今回のプロセス.plistは(または共通して?)はOSのブート時に一度だけ読みこまれるようだ そもそも、誰が読み込み、利用しているのか それを調べるために以下のコマンドが役に立つかもしれない *'com.usbmux.iproxy.plist'はプロセスの設定ファイルなので自分が対象としているプロセスのものと置き換える ``` $find / 2> /dev/null -type f | xargs -n 10 grep 2> /dev/null -n 'com.usbmux.iproxy.plist' --color ``` 'com.usbmux.iproxy.plist'を利用して対象プロセスを起動しているファイルが見つかるかもしれない ブート時に自動的に読み込んでいるアプリケーションはシステム環境設定から 確認や操作を行うことができるが アプリではない自動的に読み込まれるファイルはどこで確認すればいいのやら。。 ### 発生している問題・エラーメッセージ killしたプロセスがすぐにぺつのPIDで再開される ### 該当のソースコード ポートの確保 ``` $ brew install opam $ opam install usbmux #usbmuxから得たiproxyを使用しポート2222を確保 $ iproxy 2222 22 ``` port2222を解放したい ``` $ sudo lsof -i :2222 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME iproxy 44351 name 3u IPv4 0xc2024dd01c677a2d 0t0 TCP localhost:rockwell-csp2 (LISTEN) $sudo kill -9 44351 $ sudo lsof -i :2222 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME iproxy 44445 name 3u IPv4 0xc2024dd015abd83d 0t0 TCP localhost:rockwell-csp2 (LISTEN) ``` ### 試したこと 別のコマンドでの表示 ``` $ps ax |grep 2222 44445 ?? S 0:00.01 /usr/local/bin/iproxy 2222 22 44513 s001 S+ 0:00.01 grep 2222 ``` /usr/local/bin/ に iproxyのコマンド格納されているようなので ``` $ ls *proxy idevicedebugserverproxy iproxy idevicenotificationproxy ``` と関連のありそなコマンドを調べてみましたが プロセス終了に関連がありそうなコマンドはありませんでした ``` emacs iproxy ``` で内容を見てオプションをなどを調べようとしましたが 文字化け(?)でよくわかりませんでした ### 補足情報(言語/FW/ツール等のバージョンなど) ProductName: Mac OS X ProductVersion: 10.12.1 BuildVersion: 16B2555
回答: 提示されたURLの通りにやったという事であれば、以下のオプションが効いてたりしないでしょうか。 ``` RunAtLoad KeepAlive ``` RunAtLoadでOS起動時にiproxyも自動起動して、KeepAliveでプロセスが落ちても再起動がかかる、とか。