Устанавливал сегодня freenx-server по этому гайду и столкнулся с такой ошибкой:
NX> 203 NXSSH running with pid: 18175
NX> 285 Enabling check on switch command
NX> 285 Enabling skip of SSH config files
NX> 285 Setting the preferred NX options
NX> 200 Connected to address: 192.168.1.130 on port: 22
NX> 202 Authenticating user: nx
NX> 208 Using auth method: publickey
HELLO NXSERVER - Version 3.2.0-74-SVN OS (GPL, using backend: 3.3.0)
NX> 105 hello NXCLIENT - Version 3.2.0
NX> 134 Accepted protocol: 3.2.0
NX> 105 SET SHELL_MODE SHELL
NX> 105 SET AUTH_MODE PASSWORD
NX> 105 login
NX> 101 User: hmax
NX> 102 Password:
NX> 103 Welcome to: hwork user: hmax
NX> 105 listsession --user="hmax" --status="suspended,running" --geometry="1440x900x24+render" --type="unix-gnome"
NX> 127 Sessions list of user 'hmax' for reconnect:
Display Type Session ID Options Depth Screen Status Session Name
------- ---------------- -------------------------------- -------- ----- -------------- ----------- ------------------------------
NX> 148 Server capacity: not reached for user: hmax
NX> 105 startsession --link="lan" --backingstore="1" --encryption="1" --cache="16M" --images="64M" --shmem="1" --shpix="1" --strict="0" --composite="1" --media="0" --session="test" --type="unix-gnome" --geometry="1440x900" --client="linux" --keyboard="pc102/us" --screeninfo="1440x900x24+render"
NX> 1000 NXNODE - Version 3.2.0-74-SVN OS (GPL, using backend: 3.3.0)
NX> 700 Session id: hwork-2000-37109C2EA767836498D473A482E912F2
NX> 705 Session display: 2000
NX> 703 Session type: unix-gnome
NX> 701 Proxy cookie: b8de613a1e0745782f86134d885d483b
NX> 702 Proxy IP: 127.0.0.1
NX> 706 Agent cookie: b8de613a1e0745782f86134d885d483b
NX> 704 Session cache: unix-gnome
NX> 707 SSL tunneling: 1
NX> 1009 Session status: starting
NX> 1009 Session status: starting
NX> 105 /usr/libexec/nx/nxserver: line 1585: 18650 Terminated sleep $AGENT_STARTUP_TIMEOUT
NX> 596 Session startup failed.
NX> 1004 Error: NX Agent exited with exit status 1. To troubleshoot set SESSION_LOG_CLEAN=0 in node.conf and investigate "/home/hmax/.nx/F-C-hwork-2000-37109C2EA767836498D473A482E912F2/session". You might also want to try: ssh -X myserver; /usr/libexec/nx/nxnode --agent to test the basic functionality. Session log follows:
Can't open /var/lib/nxserver/db/running/sessionId{37109C2EA767836498D473A482E912F2}: No such file or directory.
mv: cannot stat `/var/lib/nxserver/db/running/sessionId{37109C2EA767836498D473A482E912F2}': No such file or directory
NX> 1006 Session status: closed
NX> 1001 Bye.
/usr/libexec/nx/nxserver: line 578: kill: (18330) - No such process
NX> 280 Exiting on signal: 15
Получасовое гугление ни к чему не привело. В итоге оказалось, что проблема заключается в правах доступа директории ~/.nx/, и достаточно выполнить chmod a+rwx ~/.nx/
, чтобы получить работающий freenx-server.
Автор: hmax
Давно искал, и наконец-то наткнулся на способ узнать какие модули каким железом используются. Для этого можно использовать lspci -k
:
01:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
Kernel driver in use: r8169
Kernel modules: r8169
Развлекался сегодня вечером с BLAS Level 3 через C-интерфейс. Очень сильно мучался из-за практически полного отсутствия вменяемой документации именно по C-интерфейсу, приходилось параллельно CBLAS API Reference листать ещё 3 или 4 доки, чтобы понять как же оно работает. Вобщем, под катом небольшой reference на русском:
Продолжить чтение
char data[0] — wtf?
Несколько дней назад, один мой знакомый озадачил конструкцией такого вида:
struct pkt { uint32_t flags; uint32_t length; char data[0]; };
Минут 30 мы поломали голову над тем, что это может значить, но вскоре забили. А буквально с час назад он мне дал ссылку, по которой объясняется, что же это такое.
Это поле даёт возможность выделить память под структуру такой конструкцией:
struct pkt* pkt = (struct pkt*) malloc( sizeof(struct pkt) + data_length )
и потом, сделав memset(&pkt->data,0,data_length), мы сможем обращаться к pkt->data[0..data_length-1] и использовать это поле под свои нужды. IMHO, такое лучше делать следующим образом:
struct pkt { uint32_t flags; uint32_t length; char* data; }; struct pkt* pkt=malloc(sizeof(struct pkt)); pkt->data=malloc(data_length);
и дальше работать как надо.
Сменил на работе примерно с месяц назад MTA, поставив вместо Postfix’а Exim. Настроилось базовое всё на удивление быстро, правда я не прикручивал пока что ни антиспам, ни антивирус. Недавно заметил, что exim стал отъедать нехилый кусок ресурсов сервера. Небольшой осмотр показал, что в очереди >30000 писем. Порывшись немного в интернете, нашёл достаточно приятный способ чистки очереди, с использованием exipick:
exipick — показывает сообщения в очереди экзима.
exipick -z — показывает замороженные сообщения
exipick -i — показывает ID сообщений
exipick -o S — показывает сообщения с возрастом >S, где S задаётся в секундах
exim4 -Mrm ID — удаляет из очереди сообщение с указанным ID
В итоге получаем:
exipick -zi | xargs exim4 -Mrm //удалит из очереди все замороженные сообщения
exipick -i | xargs exim4 -Mrm //удалит все сообщения из очереди
exipick -io 86400 | xargs exim4 -Mrm //удалит из очереди сообщения, с возрастом более недели
Firebird2 && пароль SYSDBA
Cегодня потратил около получаса на поиски способа смены забытого пароля у SYSDBA, чуть не дошёл до переустановки сервера, но вовремя наткнулся на решение:
gsec -mo SYSDBA -pw newpassword
Вот так вот всё просто.