Похоже, что коллекция программного обеспечения PHP 7.1 не предназначена для CentOS 6, но доступна в CentOS 7.
Вы можете попытаться собрать rh-php71
коллекцию программного обеспечения для CentOS 6, но я не нашел никакой информации о том, что кто-то пытался это сделать.
Вы можете найти информацию о доступных коллекциях программного обеспечения на их веб-сайте или в настроенном репозитории YUM
Простой способ, позволяющий процессам обмениваться данными, — это сигналы .
bash
имеет встроенную функцию trap
, которая позволяет вам добавить обработчик для данного сигнала, чтобы вы могли обернуть все свои команды внутри другого скрипта и настроить такой обработчик на уничтожение всех других программ, когда он получает данный сигнал.
Рассмотрим:
cat proc_a.sh
#!/bin/bash
echo "Load program 1 as : $$"
sleep 1d
cat proc_b.sh
#!/bin/bash
echo "Load program 2 as : $$"
sleep 1d
Теперь создайте оболочку для запуска двух других процессов.:
cat wrap.sh
#!/bin/bash
./proc_a.sh
a_pid=$!
./proc_b.sh
b_pid=$!
cleanup() {
echo "Kill process a $a_pid"
kill $a_pid
echo "Kill process b $b_pid"
kill $b_pid
echo "Kill me : $$"
kill $$
}
trap cleanup SIGINT
while :;do
sleep 1d
done
если вы запускаете ./wrap.sh
и затем отправляетеSIGINT
(Нажмите CTRL -C)Вы можете увидеть это:
Load program 1 as : 27141
Load program 2 as : 27142
^CKill a process a 27141
kill process b 27142
Kill me : 27140
Terminato
Недостатком этого является то, что В ЛЮБОЕ ВРЕМЯ вы закроете один процесс, и другой будет закрыт, за исключением того факта, что теперь вам нужно убить wrap
вместо одного из процессов.
Чтобы избежать этого недостатка, вы можете запустить программу xfce из встроенного скрипта и установить обработчик сигнала прямо здесь, когда один из двух получает сигнал закрытия, ищет pid другой программы xfce -оболочки -и убить это.
Итак, я наконец-то решил попробовать, и, как я уверен, вы знаете, идея и исполнение сценария надежны. Но, к сожалению, это не то, что я ищу. Чего я точно хочу, так это чего-то, возможно, сценария, который вызовет закрытие вторичной конкретной программы, когда я закрою первую конкретную программу. Итак, скажем, я закончил слушать музыку в CMus. Я хотел бы иметь возможность закрыть эту программу и заставить вторичную программу также закрыться. Вроде конвейера, но для закрытия программы. Это возможно?