Schreiben Sie den folgenden Code und speichern Sie ihn in / usr / lib / cgi-bin
mit der Erweiterung .cgi
.
import subprocess
print('Content-type: text/html¥n')
print(subprocess.run('hostname'))
Wenn ich über einen Browser auf dieses CGI-Skript zugreife, wird ein "500 Internal Server Error" angezeigt.
Im Apache-Protokoll
malformed header from script
Wird ausgegeben.
subprocess.run ()
gibt das Ergebnis nicht an die Standardausgabe aus, es sei denn, nichts ist angegeben.
Standardmäßig wird keine Standardausgabe oder Standardfehlerausgabe erfasst. Wenn Sie es erfassen möchten, übergeben Sie PIPE in den Argumenten stdout oder / und stderr.
https://docs.python.org/ja/3.5/library/subprocess.html
Wenn im Argument "stdout" "subprocess.PIPE" angegeben ist, wird das Ergebnis in die Standardausgabe ausgegeben. Gehen Sie wie folgt vor, wenn Sie "subprocess.run ()" in einem CGI-Skript verwenden.
result = subprocess.run('hostname', stdout=subprocess.PIPE)
print(result.stdout)
Recommended Posts