Problème pour lancer un script avec chargement des variables d'un user
Bonjour,
Via mon script python sous le user root, je dois lancer un script shell qui nécessite le chargement de l'environnement d'un user.
Le user1 a des variables d'environnement qui sont à charger avant le lancement d'un script drop_tables.sh
pour ce faire sous python j'ai fait ceci :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| def drop_tables():
# Voici la ligne de commande que je lance sous user1 en shell
# drop_tables.sh complet
str_path_script = '/path/ou/se/situe/le/script/'
arr_cmd = ['su', '-', 'user1', '\'' + str_path_script + 'drop_tables.sh complet\'']
str_cmd = ' '.join(arr_cmd)
print str_cmd
run_command(arr_cmd)
def run_command(command):
process = subprocess.Popen(command, stdout=subprocess.PIPE)
while True:
output = process.stdout.readline()
if output == '' and process.poll() is not None:
break
if output:
print output.strip()
rc = process.poll()
return rc |
Et j'obtiens ce message d'erreur :
Code:
1 2 3 4 5 6 7 8 9 10 11
| ....
File "./maj_env.py", line 415, in import_dump
drop_tables()
File "./maj_env.py", line 477, in drop_tables
run_command(arr_cmd)
File "./maj_env.py", line 481, in run_command
process = subprocess.Popen(command, stdout=subprocess.PIPE)
File "/usr/lib64/python2.6/subprocess.py", line 642, in __init__
errread, errwrite)
File "/usr/lib64/python2.6/subprocess.py", line 1234, in _execute_child
raise child_exception |
Je sèche ...
Merci de votre aide