Écrivez le code suivant et enregistrez-le dans / usr / lib / cgi-bin
avec l'extension .cgi
.
import subprocess
print('Content-type: text/html¥n')
print(subprocess.run('hostname'))
Lorsque j'accède à ce script CGI depuis un navigateur, j'obtiens une 500 Internal Server Error
.
Dans le journal Apache,
malformed header from script
Est sortie.
subprocess.run ()
ne sort pas le résultat vers la sortie standard à moins que rien ne soit spécifié.
Par défaut, il ne capture pas la sortie standard ou la sortie d'erreur standard. Si vous voulez le capturer, passez PIPE dans les arguments stdout ou / et stderr.
https://docs.python.org/ja/3.5/library/subprocess.html
Si subprocess.PIPE
est spécifié dans l'argument stdout
, le résultat sera sorti sur la sortie standard.
Lorsque vous utilisez `subprocess.run () 'dans un script CGI, procédez comme suit.
result = subprocess.run('hostname', stdout=subprocess.PIPE)
print(result.stdout)
Recommended Posts