Freebsd
在 FreeBSD 監獄中掛載 /dev/shm
我想將 /dev/shm 掛載在 freebsd 監獄中。每次我嘗試時,我都會收到以下錯誤:
[root@gaming /]# mount -t tmpfs tmpfs /dev/shm mount: /dev/shm: No such file or directory [root@gaming /]# touch /dev/shm touch: /dev/shm: Operation not supported [root@gaming /]#
監獄工作完美,我只是不知道如何讓 devfs 自動創建一個目錄。
謝謝。
如果你想在監獄中使用 tmpfs,最好添加如下行
tmpfs /jails/foo.example.org/tmp tmpfs rw,size=524288000 0 0
到監獄的 fstab 文件。
可以為監獄中的 Linux 應用程序提供所需的
/dev/shm
.安裝
/usr/ports/emulators/linux_base-c7
.添加
/etc/fstab
:tmpfs /compat/linux/dev/shm tmpfs rw,mode=1777 0 0 tmpfs /tmp tmpfs rw,mode=1777 0 0
添加
/etc/devfs.conf
:link /tmp shm
在
/etc/jail.conf
監獄中my_jail
添加:devfs_ruleset = 4; mount.devfs; mount.fstab = /etc/fstab.my_jail; allow.mount; allow.mount.devfs;
添加
/etc/fstab.my_jail
:tmpfs /opt/jails/my_jail/tmp tmpfs rw,late,mode=1777 0 0 tmpfs /opt/jails/my_jail/compat/linux/dev/shm tmpfs rw,mode=1777 0 0 devfs /opt/jails/my_jail/dev devfs rw,late 0 0
為 mode=1777 的 tmpfs 設備創建尚不存在的掛載點。
您可以通過使用符號連結在監獄中提供更多設備
/compat/linux/dev
,例如用於提供工作/dev/null
設備使用sudo ln -s /dev/null /opt/jails/my_jail/compat/linux/dev/null
/dev/shm
我通過使用以下腳本執行 Linux python 來測試在監獄中的可用性:#!/usr/bin/env python import multiprocessing lock = multiprocessing.Lock() print("lock: %s" % lock) q = multiprocessing.Queue() print ("q: %s" % q)
如果
/dev/shm
在監獄中可用,則返回類似lock: <Lock(owner=None)> q: <multiprocessing.queues.Queue object at 0x80088ef90>
如果
/dev/shm
不可用,則返回Traceback (most recent call last): File "sem-test.py", line 4, in <module> lock = multiprocessing.Lock() File "/usr/lib/python2.7/multiprocessing/__init__.py", line 176, in Lock return Lock() File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 147, in __init__ SemLock.__init__(self, SEMAPHORE, 1, 1) File "/usr/lib/python2.7/multiprocessing/synchronize.py", line 75, in __init__ sl = self._semlock = _multiprocessing.SemLock(kind, value, maxvalue) OSError: [Errno 38] Function not implemented