История Unix: код возврата восьмеричный?

Proxmox VE использует qemu для виртуальных машин, обычно с файлами qcow2 для хранения образов дисков. Образы обычно хранятся в папке для каждой виртуальной машины в хранилищах данных.

ОС Linux обычно может работать на любой машине с заданной архитектурой ЦП, боль скорее связана с коммерческими ОС, которые часто не работают, когда вы перемещаете диск с одной машины на другую. Так что, если это виртуальная машина i386 или amd64, просто создайте виртуальную машину той же архитектуры на VMWare и прикрепите к ней копию образа диска proxmox VM.

Я не знаю, поддерживает ли VMWare образы qcow2, но если нет, вы можете преобразовать его с помощью qemu-img в формат, поддерживаемый VMWare:

qemu-img convert disk.qcow2 disk.vmdk

Вы также можете выполнить преобразование из Proxmox (переместить диск и выберите в качестве формата vmdk).

11
21.02.2020, 14:58
2 ответа

Восьмеричное представление облегчает интерпретацию кода выхода для небольших значений, которые наиболее часто используются. Если бы это число, представляющее собой байт, было напечатано в десятичной системе, то для того, чтобы найти, какой сигнал прервал процесс, потребовалось бы немного вычислений, в то время как в восьмеричном представлении их можно прочитать так, как они есть:

  • процесс завершается со статусом 5, gdb выводит 05, что не имеет никакого значения
  • процесс завершается, потому что получил SIGINT (Control+C), gdb отображает 0202, что легче распознать как сигнал #2, чем 130.

Более того, статус выхода также может быть битовой маской, и в таком случае восьмеричную систему (по крайней мере, когда вы привыкли к ней, что было более распространено пару десятилетий назад, чем в наши дни) легче мысленно преобразовать в биты, чем десятичную или даже шестнадцатеричную, так же как, например, chmod все еще принимает восьмеричное число для представления прав доступа к файлам: 0750 = 111 101 000 = rwx r-x ---.

7
29.04.2021, 00:57

У меня нет копии этого текста, и я просто прочитал короткую заметку, доступную на google books, но... Согласно X/Open Portability guide System V Specification Commands & Utilities pg 283 (согласно google books)

если приложение завершается ненормально, его статус завершения - восьмеричный 0200 + status, и есть список общих значений 'status' (которые, вероятно, также даются в восьмеричном формате).

Так что это сообщение об ошибке для бедных.

3
29.04.2021, 00:57

Теги

Похожие вопросы