Внезапно на Symfony проекте прекратил работу ежеминутный комманд.
В логе сообщалось, что комманд не работает, так как уже запущен экземпляр данного комманда. Это реализуется с помощью стандартного компонента Symfony.
Расспросы причастных показали, что процесс комманда был убит ручками. В связи с этим, стало ясно, что процесс убит, а какой-то флаг, отвечающий за то, что процесс еще работает - остался в живых. Значит, надо удалить lock флаг.
Поиски были краткими:
1. ищем реализацию хендлера в ядре симфони
2. так как кастомный путь к локам в хендлер не передавался - ищем лок-файл во временной папке (если никто ничего не менял то это
3. Смотрим, какие файлы есть во временной папке и удаляем нужный.
Название файла, как можно судить из кода на гитхабе формируется из префикса
Таким образом, если ваш лок называется, например
Затем удаляем данный файл и проверяем, как работает комманд.
В логе сообщалось, что комманд не работает, так как уже запущен экземпляр данного комманда. Это реализуется с помощью стандартного компонента Symfony.
Расспросы причастных показали, что процесс комманда был убит ручками. В связи с этим, стало ясно, что процесс убит, а какой-то флаг, отвечающий за то, что процесс еще работает - остался в живых. Значит, надо удалить lock флаг.
Поиски были краткими:
1. ищем реализацию хендлера в ядре симфони
2. так как кастомный путь к локам в хендлер не передавался - ищем лок-файл во временной папке (если никто ничего не менял то это
/tmp/
)3. Смотрим, какие файлы есть во временной папке и удаляем нужный.
Название файла, как можно судить из кода на гитхабе формируется из префикса
sf
, названия лока, переданного в комманд и хеша этого названия.Таким образом, если ваш лок называется, например
my.lock
, то найти и удалить надо файл, начинающийся с sf.my.lock
Затем удаляем данный файл и проверяем, как работает комманд.