LINUX.ORG.RU

Сообщения Tujh

 

Ubuntu 14.04 LTS: Не могу залогиниться

Форум — General

Добрый день всем.

Дано: Ubuntu 14.04 LTS уже второй раз после обновлений слетает возможность авторизоваться в системе. Выглядит так, что грузится dm (установлен Gnome+gdm, но ставил и Unity+ligthdm, ситуация та же самая), отображается окно ввода логина, а затем и пароля и всё - дальше висит фон dm. Можно переключиться в консоль, снять менеджер

sudo service gdm stop
и запустить «иксы»
startx
при этом прогрузится рабочий стол и можно работать.

Но в таком случае процесс «init --user» с не единичным PID (видимо как раз тот, что отвечает за создание «иксовой» сессии пользователя) грузит одно ядро процессора на 100% и «висит», но вполне себе реагирует на SIGSTOP.

Первоначально заметил ещё, что драйвер видеокарты переключился на «Gallium 0.4 llvmpipe», починил, добавив пользователя в группу video, драйвер стал, как и полагается «Intel® Haswell Desktop». Но проблему с dm не решило. Да думаю и драйвер то переключился из-за того, что «иксы» запущены вручную.

Обнаружил, что LXDE работает корректно (предполагаю из-за того, что не использует аппаратное ускорение графики), но само lxde не устраивает. Поиском нашлась подобная проблема:

Обновил kubuntu 14.10. Не могу залогиниться

но там решилось переустановкой системы, первоначально я поступил точно так же, но проблема повторилась ровно через неделю, а переустанавливать систему каждую неделю - это вообще «не вариант». Да и в упомянутом топике речь шла о KDE, а у меня то же самое воспроизводится на Unity и Gnome3.

Кто-нибудь сталкивался? Куда копать? Поиском подобные вопросы находил не однократно, но решений в ответах нет.

 , ,

Tujh
()

100% загрузка CPU при выводе в XTerm

Форум — Development

Здравствуйте. Пытаюсь разобраться, как можно использовать xterm для своих нужд, нужен вывод текста в консольв X-ах. Набросал простенький пример.

using namespace std;

int clone_xterm(void* pPtr)
{
    cout << "create xterm process..." << endl;
    int l_fID = open("/tmp/xterm_file", O_CREAT | O_RDONLY | O_NONBLOCK, S_IREAD| S_IWRITE | S_IRGRP | S_IWGRP | S_IROTH);
    cout << "open file /tmp/xterm_file with ID = " << l_fID << endl;
    stringstream l_ss;
    l_ss << "-Sxt/" << l_fID;
    if (execlp("xterm", "xterm", l_ss.str().c_str(), NULL) == -1)
    {
        cout << "create xterm proces filed :(" << endl;
    }
    else
        cout << "xterm created :)" << endl;
    close(l_fID);
    return 0;
}

int main()
{
    void *l_pstack = malloc(1048576);
    char *l_p = (char*)l_pstack + 1048575;
    char *l_pStr = (char*)"test\n\r";
    int l_fID = open("/tmp/xterm_file", O_CREAT | O_WRONLY | O_NONBLOCK | O_TRUNC, S_IREAD| S_IWRITE | S_IRGRP | S_IWGRP | S_IROTH);
    pid_t l_pXterm = (pid_t)clone(&clone_xterm, (void*)l_p, 0, NULL);
    int i = 0;
    while (i < 10)
    {
        sleep(1);
        cout << "i = " << i << endl;
        write(l_fID, (void*)l_pStr, strlen(l_pStr));
        i++;
    }
    kill(l_pXterm, SIGQUIT);
    close(l_fID);
    remove("/tmp/xterm_file");
    free(l_pstack);
    return 0;
}

Все работает, но проблема в том, что пока открыто второе окно xterm (созданное через execlp() и в котором отражаются выводимые строки) загрузка процессора составляет 100%. Как только комментирую ключ запуска -Sccn нагрузка на процессор обычная. Как этого можно избежать, или, что я делаю не правильно?

ASP14 (FC9) + GCC4.3.2 + xterm (241)

Заранее благодарю за ответы.

P.S. на стиль кода прошу не смотреть ибо пример «написан на коленке», что бы понять «как оно работает».

Tujh
()

RSS подписка на новые темы