web-dev-qa-db-ja.com

特定のプロセスの現在の作業ディレクトリを変更する

特定のプロセスの現在の作業ディレクトリを変更できますか?

たとえば、pid 1000を持つプロセスを実行しています。現在、現在の作業ディレクトリは~です。現在の作業ディレクトリを~/1に変更したいと思います。どうすればいいですか?

4
v7d8dpo4

次のスクリプトを使用できます( ここにあります

#!/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をインストールする必要があります(明らかに)。

5
EightBitTony