Назад | Перейти на главную страницу

Остановка службы, застрявшей через ssh heredoc в сценарии bash после обновления Centos 7.7

У меня была эта логика в заданиях Jenkins для развертывания кода на удаленном хосте, который останавливал службу и запускался снова. Все работало нормально до недавнего обновления Centos до 7.7 (версия CentOS Linux 7.7.1908 (Core))

#!/bin/sh
set -e

# Start Remote SSH session and run commands to deploy on Remote Host
ssh -tt jenkins@sand8  << EOF
echo " ** REMOTE SESSION **"
sudo /bin/systemctl stop httpd
echo "Hello world!"
sudo /bin/systemctl start httpd
exit 0
EOF

Во время работы он просто застревает на остановке службы http и никогда не возвращается! Это вывод

bash-4.1$ ./sample.sh 
tcgetattr: Inappropriate ioctl for device
Last login: Fri Oct 25 16:32:19 2019 from server
echo " ** REMOTE SESSION **"
sudo /bin/systemctl stop httpd
echo "Hello world!"
sudo /bin/systemctl start httpd
exit 0
[jenkins@sand8 ~]$ echo " ** REMOTE SESSION **"
 ** REMOTE SESSION **
[jenkins@sand8 ~]$ sudo /bin/systemctl stop httpd
[jenkins@sand8 ~]$ ^CKilled by signal 2.  (killed here manually)
bash-4.1$ 

Я попытался отключить requiretty для пользователя jenkins в файле sudoers и запустить скрипт без pdeudoterminal (ssh -t), который работает, но мне нужен вывод из псевдотерминала, который раньше работал отлично