Да. Разветвление записано &
:
echo child & echo parent
То, что может смущать Вас, является этим $$
не PID процесса оболочки, это - PID исходного процесса оболочки. Точка создания его этот путь является этим $$
уникальный идентификатор для конкретного экземпляра сценария оболочки: это не изменяется во время выполнения сценария, и это отличается от $$
в любом другом одновременно запускающем скрипте. Один способ получить фактический PID процесса оболочки sh -c 'echo $PPID'
.
Поток управления в оболочке не является тем же как C. Если в C Вы записали бы
first(); fork(); second(); third();
затем эквивалентная оболочка
after_fork () { second; third; }
first; after_fork & after_fork
Простая форма оболочки first; child & parent
соответствует обычной идиоме C
first(); if (fork()) parent(); else child();
&
и $$
существуйте и ведите себя этот путь в каждой оболочке стиля Границы и в (t) csh. $PPID
не существовал в orignal Оболочке Bourne, но находится в POSIX (таким образом, это находится в пепле, ударе, ksh, zsh, …).
Во-первых: пакеты и порты являются полностью двумя отдельными вещами. Нет такой вещи как "пакеты от портов".
От FAQ:
Пакеты являются предварительно скомпилированными двоичными файлами части наиболее используемого внешнего программного обеспечения. Пакетами можно управлять легко с помощью нескольких утилит, также называемых pkg* инструменты.
и от раздела по Портам:
Как упомянуто во введении, пакеты компилируются от дерева портов. В этом разделе мы объясним, как дерево портов работает, когда необходимо использовать его и как можно использовать его.
ВАЖНОЕ ПРИМЕЧАНИЕ: дерево портов предназначено для опытных пользователей. Все поощряются использовать предварительно скомпилированные двоичные пакеты.
Во-вторых: Все от пакетов и (особенно) портов считают третьей стороной. Разработчики OpenBSD не "поддерживают" пакеты или порты - сообщество делает. Что касается проекта OpenBSD Вы самостоятельно с пакетами и порты... они не действительно часть проекта OpenBSD. Это означает, что, если они не проходят нормальный процесс аудита или получают обновления системы защиты через проекты OpenBSD - снова, они общественные поддерживаемый.
В-третьих: нет никакой основанной на хосте платформы виртуализации, включенной в OpenBSD, о котором я знаю (хорошо существует слой совместимости на уровне двоичных кодов Linux - но это - необычный прием API ядра земли), и при этом я никогда не ожидаю, что эта функциональность будет добавлена к OpenBSD. Проект OpenBSD печально известно был симпатичен, ненавидят для принятия виртуализации:
Theo de Raadt на Виртуализации:
"виртуализация x86 о в основном размещении другого почти полного ядра, полного новых ошибок, сверху противной x86 архитектуры, которая едва имеет корректную защиту страницы. Затем выполняя Вашу операционную систему с другой стороны этой совершенно новой груды дерьма. Вы абсолютно вводитесь в заблуждение, если не глупый, если Вы думаете, что глобальный набор разработчиков программного обеспечения, которые не могут записать операционные системы или приложения без дыр в системе безопасности, может затем обернуться и внезапно записать слои виртуализации без дыр в системе безопасности".
Я ищу тот, который не использует пакеты от портов. Есть ли кто-либо?
Нет. И вероятно, никогда не будет. OpenBSD является фантастической операционной системой, но это не хороший выбор как хост виртуализации.
Если Вы все еще хотите/нуждаетесь использовать OpenBSD в качестве хоста виртуализации, я думаю, что QEMU является Вашей единственной опцией. Это доступно и как пакет и от дерева портов.
Можно просто использовать qemu в OpenBSD, который является ОЧЕНЬ медленным.