запустите скрипт асинхронно / в другом процессе

Могло бы иметь смысл временно исключать пакет из установки, если бы доступная версия, как известно, является багги, хотя это редко происходило бы на сервере, где каждый обычно устанавливает дистрибутивы, которые часто не обновляют за исключением исправлений ошибок.

Причина, которая приходит на ум для исключения жемчуга конкретно, состоит в том, если существует отдельная установка жемчуга, возможно непосредственно от CPAN, возможно совместно использованного или синхронизируемого с другими машинами в сети для обеспечения непротиворечивых множеств установленных библиотек и версий. Заглянуть /usr/local или opt для альтернативной установки жемчуга проверьте на a PERL5LIB начинание /etc/profile. Я не сделал бы этого тот путь, потому что, поскольку Вы заметили, что это повредит зависимости, но я вижу, почему кто-то мог бы соблазниться.

Возможно, если Вы отправите полный набор исключений, то кто-то определит шаблон. Есть ли какой-либо комментарий в файле, который мог бы дать подсказку?


Для предотвращения этого вида проблемы в будущем необходимо подвергнуть все конфигурации управлению версиями. Затем журнал изменений указал бы, когда удивительная конфигурация была настроена, и надо надеяться почему.

На Debian/Ubuntu я использую etckeeper, который я думаю, был упакован для CentOS также. На машине мультиадминистратора это не должно быть настроено, чтобы никогда фиксировать изменения автоматически, вынудив администратора сделать явную фиксацию, прежде чем они смогут работать yum install или yum update.

1
05.01.2012, 03:18
2 ответа

Это ожидается, если Ваш терминал будет иметь tostop опция включена. Когда это установлено, любой фоновый процесс, который пытается произвести к терминалу, получает SIGTTOU сигнал, и что обработчик сигнала по умолчанию останавливает процесс. (Это сделано так, чтобы произведенный от фоновых процессов не портил Ваш терминал.)

Можно отключить эту опцию путем выполнения stty -tostop, в том же терминале.

Ваша текущая ситуация:

$ stty tostop
$ php ./t.php &
[1] 6484
$ 
[1]+  Stopped                 php ./t.php
$ # no messing up of the terminal, process stopped
$ fg
php ./t.php
0^C
$ 

Отключите ту опцию:

$ stty -tostop
$ php ./t.php &
[1] 6481
$ # 01an2d 3now 45 6it m7esses 8up 9my term!
2
27.01.2020, 23:40
  • 1
    сделал stty-tostop (с и без sudo) все еще работа, то же сообщение –  Itay Moav -Malimovka 04.01.2012, 21:40
  • 2
    , которым это должно быть в том же терминале, Вы выполняете php от, так же, как в примерах, которые я отправил. –  Mat 04.01.2012, 21:42
  • 3
    Это находится в том же терминале. Это походит на выпуск Ubuntu. Если я делаю, и из php файла это хорошо работает. –  Itay Moav -Malimovka 04.01.2012, 22:00
  • 4
    Под чем Вы подразумеваете, "делают и из php файла"? –  Mat 04.01.2012, 22:01
  • 5
    в php, который я делаю [обратная галочка] php t.php> журнал и [обратная галочка] Это в php, выполняет команду в обратных галочках на уровне оболочки (Я говорил это правильный?). Если я делаю это, сценарий работает асинхронный, т.е. Я могу использовать командную строку и выполнения t.php в фоновом режиме и выводы в странный –  Itay Moav -Malimovka 05.01.2012, 03:17

Существует, вероятно, лучшее решение, но для меня, на Ubuntu, оно работает, если Вы выполняете его на переднем плане и приостанавливаете его с Ctrl-Z и затем фоном оно с bg:

$ php myfile.php 
^Z
[4]+  Stopped                 php myfile.php
$ bg
[4]+ php myfile.php &
$ 2#3 it4 mess5es up 6my 7term8in9al too!
[4]   Done                    php myfile.php
0
27.01.2020, 23:40
  • 1
    , какую версию Ubuntu Вы используете? –  Itay Moav -Malimovka 05.01.2012, 15:46
  • 2
    таблица дескрипторов файлов –  mkopala 06.01.2012, 01:41

Теги

Похожие вопросы