LINUX.ORG.RU

Как можно получить вывод команды lxc-monitor в Java без PTY?

 , , , ,


0

1

Например в python или ruby, используя pty можно получить вывод команды. В Java я пробую разные способы и всегда получаю пустой вывод команды(хотя запускаю и убиваю контейнеры). Почему от других програм я получаю результат вывода, а lxc-monitor всегда молчит?

Ответ на: комментарий от Xenesz

Проверял, нет.

На stderr он выводит только ошибки(например, что не может прибиндить адрес).

yeah_wow
() автор топика
Ответ на: комментарий от Xenesz

Если попробовать сохранить вывод команды(в шелле) в файл через > ... 2&>1, то мы получаем пустой файл.

yeah_wow
() автор топика
Ответ на: комментарий от yeah_wow

По исходникм понятно, что он использует AF_UNIX-сокет для приема сообщений от контейнеров. Но как мне подключиться к этому сокету в Java, если я имею такой код:

	struct sockaddr_un addr = { .sun_family = AF_UNIX };
	char *offset = &addr.sun_path[1];
	int fd;

	strcpy(offset, "lxc-monitor");

	fd = socket(PF_UNIX, SOCK_DGRAM, 0);
	if (fd < 0) {
		ERROR("socket : %s", strerror(errno));
		return -1;
	}

	if (bind(fd, (struct sockaddr *)&addr, sizeof(addr))) {
		ERROR("bind : %s", strerror(errno));
		close(fd);
		return -1;
	}

?

yeah_wow
() автор топика

Например в python или ruby, используя pty можно получить вывод команды. В Java я пробую...

это тебе намекают, что надо использовать питон и руби))

dimon555 ★★★★★
()
Ответ на: комментарий от dimon555

Я сейчас пишу на обоих языках и новый проект не хочу завязывать на них. Выбор в пользу Scala.

yeah_wow
() автор топика
Ответ на: комментарий от yeah_wow

Сокеты бывают анонимными. В VFS их не будет. Хотя странно, что эта библиотека работает только с анонимными.

pathfinder ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.