![]() |
Модераторы: powerfox, ZeeLax |
![]() ![]() ![]() |
|
02077461 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Собственно все просто: есть простой скрипт
Т.е. он должен запуститься, провисеть 2 секунды, написать "Done..." и отвалиться. Но вместо этого у меня на машине (Ubuntu 9.что-то там) от останавливается как будто я запустил просто команду, а потом нажал Ctrl+Z. При этом jobs выдает такой список (скрипты другие запускал):
Собственно вопрос: почему амперсанд работает так странно? |
||||
|
|||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 41 Всего: 181 |
Какой $SHELL?
Добавлено через 40 секунд ЗЫ У меня не на убунте в bash и zsh всё работает как надо. -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
bash
Я уже не знаю что думать. скрипт sleep 3 && echo "Done..." & срабатывает как надо. А вот php почему-то в фоне стопится. |
|||
|
||||
nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 41 Всего: 181 |
Странно, попробуй вот что, другой язык (не шелл), например perl:
и другой терминал, лучше что-то попроще, например xterm или прямо в консоли. Добавлено через 2 минуты и 10 секунд Да, может это еще зависит от конфигурации bash, т.е. файлы /etc/bash* и ~/.bash* -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
02077461 |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Извините, что долго не отвечал.
вот что очень интересно:
Т.е. perl скрипт выполнился, а php сразу "[1]+ Остановлено " Добавлено через 1 минуту и 47 секунд
.bashrc прикрепил в аттач. Присоединённый файл ( Кол-во скачиваний: 2 ) ![]() |
||||
|
|||||
IgorIV |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: нет Всего: 8 |
02077461, потому что скрипт надо правильно писать, где последняя точка с запятой?
|
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
IgorIV, поставил, ничего не поменялось.
Добавлено через 1 минуту и 43 секунды Кстати, та же строка на других дистрах работает отлично, а на убунте (предпоследней и последней) такие вот чудеса. На Ubuntu forums так же ответить ничего не смогли. |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
02077461,
сделай копи-пэйст того, что ты запускаешь СЮДА. не вручную, а мышкой, или на худой конец ссылку на картинкой со сркиншотом. Это сообщение отредактировал(а) bilbobagginz - 31.8.2010, 10:46 -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
Посмотри предпоследнее мое сообщение. Это копипаст из консоли. |
|||
|
||||
IgorIV |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 642 Регистрация: 7.9.2009 Репутация: нет Всего: 8 |
02077461, включай в php.ini журналирование и смотри его.
|
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
я немного посмотрел. дело вот какое - есть сигнал SIGTTOU.
он передается процессу, когда его посылают в bg, т.е. запускают в &. если сигнал не обрабатывается, обработчик по умолчанию дублирует посылку сигнала SIGSTOP. насколько я понимаю по какой-то причине (возможно REPL, т.е. libedit ) в убунту не обрабатывает сам SIGTTOU => получает по морде SIGSTOPом. судя по перловой доке перл умеет сам обрабатывать этот сигнал. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
bilbobagginz, С перлом то все окей, с PHP проблема. Но спасибо за наводку.
Я тут проверил: и на PHP и на PERL kill -SIGTTOU действуют одинаково -- останавливают процесс в фоне. При этом перл, как я раньше говорил, отрабатывает в фоне нормально когда его запускаю с амперсандом. Это сообщение отредактировал(а) 02077461 - 1.9.2010, 09:30 |
|||
|
||||
bilbobagginz |
|
|||
![]() Naughtius Maximus ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8813 Регистрация: 2.3.2004 Где: Israel Репутация: 113 Всего: 317 |
02077461,
насколько я понимаю, Perl обрабатывает SIGTTOU по-особенному именно в случаях, когда его запускают из оболочки, с &. я не смотрел код, но предполагаю, что при запуске интерпретатор смотрит на коммандную строку отца своего (по PPID-у), распарсивает ее, и если видит амперсанд, устанавливает свой обработчик сигнала. я не к тому, что php так делает, а как-раз наоборот - что php так не должен делать. и еще есть разница. в Debian Stable (5.0.5) версия bash - 3.2 в Ubuntu 10.04 версия bash 4.2 надо и это проанализировать. -------------------- Я ещё не демон. Я только учусь. |
|||
|
||||
02077461 |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 183 Регистрация: 13.7.2005 Репутация: нет Всего: 0 |
bilbobagginz, большое спасибо! Посмотрю еще на этот момент!
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Linux/UNIX: Oбщие вопросы" | |
|
В тему здесь вопросы общие - не привязанные к определенному ПО или дистрибутиву BSD/Linux/UNIX.
За интересные статьи, находки, решения, программы и просто реальную помощь будут ставиться + в репу). В данный момент этот раздел модерируют nerezus, nickless, powerfox, pythonwin, Imple и ZeeLax. Если вы хотите помочь нам, пишите в ПМ и мы обсудим. Спасибо. И use UNIX or die; С уважением, nerezus, nickless, powerfox, pythonwin, Imple, ZeeLax. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | *NIX системы: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |