特定のプロセスの現在の作業ディレクトリを変更できますか?
たとえば、pid 1000を持つプロセスを実行しています。現在、現在の作業ディレクトリは~
です。現在の作業ディレクトリを~/1
に変更したいと思います。どうすればいいですか?
次のスクリプトを使用できます( ここにあります )
#!/bin/bash
pid="$1" # first arguvment is the PID
cwd="$2" # second argument is the target working directory
# now let's command the GNU debugger
gdb -q <<EOF
attach $pid
call (int) chdir("$cwd")
detach
quit
EOF
PIDを最初のパラメーターとして渡し、ターゲットの作業ディレクトリを2番目のパラメーターとして渡すことによって呼び出します。
警告:これは、ファイルが閉じられたり、シェルプロンプトで提供される誤解を招く情報など、ターゲットプロセスに予期しない結果をもたらす可能性があります。
また、gdb
をインストールする必要があります(明らかに)。