IF YOU WOULD LIKE TO GET AN ACCOUNT, please write an email to s dot adaszewski at gmail dot com. User accounts are meant only to report issues and/or generate pull requests. This is a purpose-specific Git hosting for ADARED projects. Thank you for your understanding!
瀏覽代碼

Improved jail cleanup

tags/0.92
父節點
當前提交
624a6179da
共有 1 個檔案被更改,包括 14 行新增1 行删除
  1. +14
    -1
      jail.py

+ 14
- 1
jail.py 查看文件

@@ -2,14 +2,27 @@ import subprocess
from .zfs import *
import random
import shutil
import json
def get_jid(path):
data = json.loads(subprocess.check_output(['jls', '--libxo=json']))
lst = data['jail-information']['jail']
lst = list(filter(lambda a: a['path'] == path, lst))
if len(lst) == 0:
raise ValueError('JID not found for path: ' + path)
if len(lst) > 1:
raise ValueError('Ambiguous JID for path: ' + path)
return str(lst[0]['jid'])
def jail_run(path, command):
command = ['jail', '-c', 'host.hostname=' + os.path.split(path)[1], 'mount.devfs=1', 'interface=lo1', 'ip4.addr=127.0.1.0', 'path=' + path, 'command', '/bin/sh', '-c', command]
command = ['jail', '-c', 'host.hostname=' + os.path.split(path)[1], 'persist=1', 'mount.devfs=1', 'interface=lo1', 'ip4.addr=127.0.1.0', 'path=' + path, 'command', '/bin/sh', '-c', command]
print('Running:', ' '.join(command))
try:
res = subprocess.run(command)
finally:
subprocess.run(['jail', '-r', get_jid(path)])
subprocess.run(['umount', '-f', os.path.join(path, 'dev')])
if res.returncode != 0:
# subprocess.run(['umount', os.path.join(path, 'dev')])


Loading…
取消
儲存