Это покажет поведение, которое вы пытаетесь проиллюстрировать:
(sleep 60 & kill -STOP $!)
Это переводит sleep
в фоновый режим, а затем останавливает его. Затем он уничтожается SIGHUP
при выходе из подоболочки.
Сигналы могут прерывать некоторые системные вызовы; см. справочную страницу signal(7)
(, в частности раздел «Прерывание системных вызовов и библиотечных функций обработчиками сигналов» ). Системные вызовы, используемые sleep
, в частности, прерываются при вызове обработчика сигнала, и это описано в sleep(3)
.
Как упомянул @berndbausch в комментариях, WSL в настоящее время не поддерживает systemd
, и пакет cockbase определенно пытается использовать systemd
.
В дополнение к рекомендации @berndbausch попробовать отключить постустановочные сценарии, есть еще две возможности. Обратите внимание, что я не делал ничего из этого сам, но, по крайней мере, первое должно быть полностью работоспособным.
Во-первых, и, возможно, проще всего было бы установить Docker на дистрибутив WSL2 Ubuntu и использовать образ докера Couchbase .
Во-вторых, Couchbase также предоставляет метод установки «не -пакет -на основе» . Для потенциальных будущих читателей это было подтверждено как работающее в WSL в комментариях @Avi,кто задал исходный вопрос. Однако похоже, что для установки ulimit (, как описано в установке ), не основанной на -пакете -, в настоящее время требуется обходной путь в WSL. Перед установкой ulimit запустите su $USER
. Обратите внимание, что повышение ulimit будет допустимо только в этой подоболочке. См. этот комментарий Github и ветку для получения дополнительной информации.