Синхронизация времени в виртуальной машине между Windows в качестве хоста и CentOS в качестве гостя без сети

Вероятно, нет; для перезапуска стандартного потребителя ввода требуется способность этого потребителя самостоятельно выполнять exec .

#include 
#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
    char buf[1];
    int ret;
    int linenumber = 0;
    fprintf(stderr, "collect me some input...\n");
    while (1) {
        ret = read(STDIN_FILENO, buf, 1);       // unbuffered. inefficient
        if (ret == 0)           // EOF
            exit(EXIT_SUCCESS);
        else if (ret < 0)
            err(1, "read failed");

        write(STDOUT_FILENO, buf, 1);

        if (buf[0] == '\n') {
            linenumber++;
            if (linenumber == 4) {      // restart ourself every four lines...
                execvp(*argv, argv);
                err(1, "exec failed");
            }
        }
    }
    exit(EXIT_SUCCESS);
}

Которая при запуске перезапускается каждые четыре строки:

$ make execself
cc     execself.c   -o execself
$ perl -E 'say "line $_" for 1..8' | ./execself
collect me some input...
line 1
line 2
line 3
line 4
collect me some input...
line 5
line 6
line 7
line 8
collect me some input...
$ 

Я собираюсь выйти из ситуации и предположить, что сокет или очередь сообщений могут лучше удовлетворить потребность в случайном отключении и перезапуске потребителя вывода, поскольку тогда сообщения (до предела буфера или с блокировкой ...) остаются, пока процесс потребителя завершается и перезапускается.Или вы могли бы написать какой-то прокси-сервер, который читает стандартный ввод и допускает случайную недоступность последующего потребителя java, или чтобы иметь возможность более или менее изящно перезапускать указанного потребителя.

(Обратите внимание, что при буферизованном чтении потребителю, возможно, потребуется приложить дополнительные усилия, чтобы обработать или каким-либо образом передать любые неполные данные, прочитанные буферизованным чтением, но не обработанные во время перезапуска или выхода ...)

1
15.03.2016, 00:31
1 ответ

Если у вас гость Centos Linux , вам необходимо установить пакет DKMS (поддержка динамических модулей ядра).

# yum install dkms
# yum install virtualbox-guest-additions

Для справки вы можете проверить это

Без virtualbox-guest-adds инструмент

Отключить службу ntp

chkconfig ntpd off

Для хоста Windows

Перейдите в
C: \ Documents and Settings \ .VirtualBox \ Machines \
и отредактируйте XML-файл.
-> Создать резервную копию этого файла <-

Добавьте строку

VBoxInternal / Devices / VMMDev / 0 / Config / GetHostTimeDisabled "0"

1
27.01.2020, 23:48

Теги

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