Предполагая, что ваш скрипт main.py
правильно написан для чтения со стандартного ввода и , что ничто в venv/bin/activate
не читает со стандартного ввода (*), ??????
должно быть "вообще ничего".
В сценарии bash нет предыдущих команд, которые будут использовать stdin перед python, поэтому python просто начнет его использовать.
#/bin/bash
pushd /some/python/virtual/environment/working/dir
source venv/bin/activate
python main.py
deactivate
Или сделайте main.py
исполняемым и запустите его напрямую как ./main.py
... в любом случае работает одинаково.
(*)если бы он был, вы, вероятно, вообще не смогли бы это сделать, без чего-то уродливого, такого как захват всего stdin в переменную, а затем конвейер или <<<
перенаправление переменной сначала в venv/bin/activate
, а затем main.py
.
Для наглядного примера того, что здесь происходит и почему это работает, рассмотрим следующий сценарий shkitten.sh
:
#!/bin/sh
cat
Он просто запускает cat
, который начинает чтение со стандартного ввода и вывод на стандартный вывод.
Если вы дошли до конца Инструкции по загрузке и установке Zabbix и службы не работают, стоит попробовать команды «Запустить процессы сервера и агента Zabbix»:
systemctl restart zabbix-server zabbix-agent httpd php-fpm
systemctl enable zabbix-server zabbix-agent httpd php-fpm