Re: vzctl exec. Bug? [message #34304 is a reply to message #34283] |
Mon, 22 December 2008 15:33   |
asarg
Messages: 5 Registered: March 2008
|
Junior Member |
|
|
Работаю с pilat в одной комнате )
Мне кажется что проблему решить очень просто.
Что мы изначально имеем? vzctl? это он выполняет вход в VE и знает, что и как запустить? Все, нам для решения больше ничего не надо, кроме изменения исходников vzctl.
Конкретно, саму команду exec трогать не будем, оставим ее для совместимости с уже наработанными (подозреваю не только у нас) скриптами для обхода данной проблемы, вместо этого введем новую команду execl или добавим ключ --login к уже имеющемуся exec. Далее для простоты будем говорить просто об execl.
имеем:
vzctl [flags] execl veid command [arg ...]
Тогда vzctl сначала выполняет действия:
1. лезет внутрь VE и считывает оттуда /etc/passwd, и находит там $SHELL для UID=0.
2. проверяет, существует ли $SHELL внутри VE и исполнимый ли он.
3. находит /bin/echo внутри VE и проверяет, исполнимый ли он
4. если все условия соблюдены, то vzctl заходит внутрь VE и исполняет в нем команду /bin/echo 'command [arg ...]' | $SHELL -l - нашел именно такой способ, совместимый с различными диалектами шелла от bash до zsh.
5. если не соблюдены условия в пп 1-3, то fallback до vzctl exec или возврат ошибки.
в принципе несложно.
[Updated on: Mon, 22 December 2008 15:38] Report message to a moderator
|
|
|