SSL-сертификаты привязаны к имени хоста. Таким образом, чтобы иметь возможность использовать его на своем компьютере разработчика, вы должны разрешить имя хоста на своем компьютере разработчика (т.е. использовать файл hosts)
В модуле os
есть набор функций ( os.WIFCONTINUED
, os.WIFSTOPPED
, os .WTERMSIG
, os.WCOREDUMP
, os.WIFEXITED
, os.WEXITSTATUS
, os.WIFSIGNALED [11473363],
,
.WSTOPSIG
), которые соответствуют макросам из руководства wait (2) . Их следует использовать для интерпретации кода состояния.
Например, чтобы получить код выхода, вы должны использовать os.WEXITSTATUS (status)
Лучше переключиться на подпроцесс
] модуль.
Глядя на commands.py
:
def getstatusoutput(cmd):
"""Return (status, output) of executing cmd in a shell."""
import os
pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')
text = pipe.read()
sts = pipe.close()
if sts is None: sts = 0
if text[-1:] == '\n': text = text[:-1]
return sts, text
Мы видим, что sts
содержит значение os.popen (...). close ()
. Глядя на , эта документация , os.popen (...). Close ()
возвращает значение os.wait
:
os .wait ()
Дождаться завершения дочернего процесса и вернуть кортеж, содержащий его pid и индикацию статуса выхода: 16-битное число, младший байт которого является номером сигнала, который завершил процесс, и , чей старший байт - это статус выхода (если номер сигнала равен нулю); старший бит младшего байта устанавливается, если был создан файл ядра. Доступность: Unix.
Упор был сделан мной. Я согласен, что эта "кодировка" не очень интуитивна,
Вау. Понимание того, что он умножается на 256, привело меня к этому. Поиск «команд python +256» привел меня к статье Python Module Of The Week , в которой объясняется, что происходит.
Вот фрагмент с этой страницы:
Функция getstatusoutput () запускает через оболочку и возвращает код выхода и вывод текста (stdout и stderr вместе взятые). Коды выхода такие же, как для функции C wait () или os.wait (). Код - это 16-битное число. Младший байт содержит номер сигнала, который убил процесс. Когда сигнал равен нулю, старший байт - это статус выхода программа. Если был создан файл ядра, установлен старший бит младшего байта.
И часть кода Дуга:
from commands import *
def run_command(cmd):
print 'Running: "%s"' % cmd
status, text = getstatusoutput(cmd)
exit_code = status >> 8
signal_num = status % 256
print 'Signal: %d' % signal_num
print 'Exit : %d' % exit_code
print 'Core? : %s' % bool(exit_code / 256)
print 'Output:'
print text
print
run_command('ls -l *.py')
run_command('ls -l *.notthere')
run_command('echo "WAITING TO BE KILLED"; read input')
Я считаю, что определение кода неверно.
«Если был создан файл ядра, устанавливается старший бит младшего байта». означает 128.
поэтому я думаю, что основная строка должна быть
print 'Core? : %s' % bool(status & 128)