私はPythonを使ってデプロイメントプロセスを自動化しようとしています。デプロイメントではまず "dzdo su - sysid"を実行してから展開プロセスを実行します。しかし、私はこの部分をPythonで処理することはできません。pythonスクリプトを使ってsudoの後にコマンドセットを実行するには
/bin/bash
psh su - sysid << EOF
. /users/home/sysid/.bashrc
./deployment.sh
EOF
これはデプロイメントの実行を非常にうまく処理しています。それはsudoを実行して、sysid idでスクリプトを実行します。 私はPythonを使って同様のことをしようとしていますが、私は< < EOF in pythonの代わりを見つけることができません。
私はdzdoを実行するためにサブプロセスを使用しています。dzdoを実行しますが、次のコマンドを実行しようとしたときなどです。 "ls -l"とすると、このコマンドはsysidで実行されず、代わりにsysidセッションを終了しなければなりません。終了すると、ホームディレクトリに "ls -l"が実行されます。つかいます。誰かが私にこれを助けてくれますか?
そしてもう一つ、となります。mkdirなど、RM、
ありがとう、ブラックジャック。あなたが提供したソリューションは有効です。もう1つ、シェルコマンドでシェル変数を使う方法を教えてください。例えば、 SHELL_COMMANDS = r '' '\。 /users/home/$USER/deployment.py '' 'これで、パスにシェル変数である$ USERを渡そうとしているのがわかります。もちろん、Pythonではこの変数を展開することはできません。ここでシェル変数を使用できるかどうか教えてください。 – Kalpesh
シェルで実行されるので、まったく問題になるはずがありません。 – BlackJack