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 :
Et j'obtiens ce message d'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Je sèche ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Merci de votre aide
Partager