プロセスの現在の作業ディレクトリの変更

プロセスの現在の作業ディレクトリの変更

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

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

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

関連情報