แน่นอน! รูปแบบทั่วไปในโปรแกรม "wrapper" คือการทำสิ่งต่าง ๆ แล้วแทนที่ตัวเองด้วยโปรแกรมอื่นด้วยการexec
โทรเท่านั้น(ไม่มีทางแยก)
#!/bin/sh
export BLAH_API_KEY=blub
...
exec /the/thus/wrapped/program "$@"
ตัวอย่างในชีวิตจริงของเรื่องนี้คือGIT_SSH
(แม้ว่าgit(1)
จะยังมีGIT_SSH_COMMAND
ถ้าคุณไม่ต้องการที่จะทำวิธีการโปรแกรม wrapper ข้างต้น)
Fork-only จะใช้เมื่อวางไข่เป็นกลุ่มของกระบวนการผู้ปฏิบัติงานโดยทั่วไป (เช่น Apache httpd
ในโหมด fork (แม้ว่า fork-only จะเหมาะกับกระบวนการที่ต้องเผาซีพียูให้มากขึ้นและไม่ใช่ที่ใช้นิ้วโป้งยกนิ้วรอให้ I / O เครือข่ายเกิดขึ้น) ) หรือการแยกสิทธิพิเศษที่ใช้โดยsshd
และโปรแกรมอื่น ๆ ใน OpenBSD (ไม่มีการประมวลผล)
$ doas pkg_add pstree
...
$ pstree | grep sshd
|-+= 70995 root /usr/sbin/sshd
| \-+= 28571 root sshd: jhqdoe [priv] (sshd)
| \-+- 14625 jhqdoe sshd: jhqdoe@ttyp6 (sshd)
root
sshd ได้เชื่อมต่อกับลูกค้าคดเคี้ยวออกสำเนาของตัวเอง (28571) แล้วสำเนาอื่น (14625) สำหรับการแยกสิทธิพิเศษ