среда, 9 октября 2013 г.

Restart gnome-shell with no process loss


Restart gnome-shell from the command prompt

If gnome-shell has locked, try the following
Switch to a different session by hitting:
Ctrl+Alt+F5
Now, log in.
Find the gnome-shell process id:
ps aux | grep gnome
Look for the process id for this process:
/usr/bin/gnome-shell
Restart gnome-shell with the id you found above:
kill -HUP 1111
Back to your session:
Ctrl+Alt+F7
Everything should be largely intact.

Note:
If you get the process id for the gnome-session, rather that the gnome-shell, you'll be logged out and all your processes associated will be terminated.

пятница, 27 сентября 2013 г.

Широковещательное сообщение в открытые терминальные сессии Linux

Понадобилось мне давече разослать на все терминалы на удаленной машине текстовое сообщение (я преследовал свои одному мне изветные цели).

Делается это следующим образом:

1. Заходим по ssh на удаленную тачку
2. Пишем в открытом терминале:
echo -e "ЦЕЛЕВОЕ_СООБЩЕНИЕ\n" | wall


Вуа-ля, все открытые терминал внезапно получат следующий месседж:

Широковещательное сообщение от username@hostname
(/dev/pts/6) at 18:50 ...
ВАШЕ_ЦЕЛЕВОЕ_СООБЩЕНИЕ


Если же вы хотите отправить сообщение только на определенный терминал, то:

1. who #даст перечень всех залогиненых (включая и удаленных) пользователей
    cardinal tty7         2013-09-27 15:39 (:0)
    git_man tty8         2013-09-26 18:46 (:0)


2. echo -e "ЦЕЛЕВОЕ_СООБЩЕНИЕ\n" >/dev/tty7 #отошлет сообщение пользователю cardinal

На этом все.

суббота, 3 августа 2013 г.

Установка Asterisk PBX 11 Debian + "Checking write permission for gui folder"

Установка проводится по мануалу отсюда, на всякий случай скопирую для себя.

Добавляем в  /etc/apt/sources.list репозиторий установки програмного обеспечения:


deb http://mirror.yandex.ru/debian squeeze main contrib non-free

Устанавливаем необходимые зависимости для сборки Asterisk командой:


apt-get install build-essential linux-headers-`uname -r` g++ libncurses-dev libxml2-dev subversion libmysqlclient-dev

Переходим в каталог /usr/src, создаем папку asterisk-src, в которую мы будем качать и распаковывать исходники нужных программ, а также переходим в эту папку:




cd /usr/src/
mkdir asterisk-src
cd asterisk-src/

Скачиваем исходники Asterisk с оффициального сайта:





wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-1.6.2.22.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-2.6.1+2.6.1.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.12.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-addons-1.6.2.4.tar.gz



Компилируем Asterisk в следующем порядке:
Устанавливаем сначала Dahdi камандами:



cd dahdi-linux-complete-2.6*
make all && make install && make config

Устанавливаем затем Libpri командами:



cd ../libpri-1.4.12*
make && make install

Устанавливаем сам Asterisk командами (make menuselect - использовать, если необходимо отключить, включить какие-либо модули):







cd ../asterisk-1.6.2.22
./configure
make menuselect
make && make install
make samples
make config

Устанавливаем Asterisk-addons командами:





cd ../asterisk-addons-1.6.2.4
./configure
make && make install
make samples

Asterisk будет компилироваться довольно-таки продолжительное время, сделайте чашечку чая либо коффе и отдохните.
Скачиваем и распаковываем дополнительные звуки с оффициального сайта камандами:



cd /var/lib/asterisk/sounds
wget -O - http://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-alaw-current.tar.gz | tar xvfz -


Создаём пользователя Asterisk под которым наша VOIP телефония будет работать:


adduser asterisk --disabled-password --no-create-home --gecos "asterisk PBX user"

В файле /etc/init.d/asterisk необходимо расскоментировать пользователя и группу под которым будет запускатся наш Asterisk
было:



#AST_USER="asterisk"
#AST_GROUP="asterisk"
стало:



AST_USER="asterisk"
AST_GROUP="asterisk"

Изменяем права для запуска под пользователем Asterisk на использование следующих файлов:
Выполняем комманды:















chown -R asterisk:asterisk /var/lib/asterisk
chown -R asterisk:asterisk /var/log/asterisk
chown -R asterisk:asterisk /var/run/asterisk
chown -R asterisk:asterisk /var/spool/asterisk
chown -R asterisk:asterisk /usr/lib/asterisk
chown -R asterisk:asterisk /dev/dahdi
chmod -R u=rwX,g=rX,o= /var/lib/asterisk
chmod -R u=rwX,g=rX,o= /var/log/asterisk
chmod -R u=rwX,g=rX,o= /var/run/asterisk
chmod -R u=rwX,g=rX,o= /var/spool/asterisk
chmod -R u=rwX,g=rX,o= /usr/lib/asterisk
chmod -R u=rwX,g=rX,o= /dev/dahdi
chown -R root:asterisk /etc/asterisk
chmod -R u=rwX,g=rX,o= /etc/asterisk

Перезагружаем asterisk коммандой:


/etc/init.d/asterisk restart

Для проверки работоспособности asterisk зайдем в консоль прокси сервера командой и выполним команду:



rasterisk
sip show peers

Вывод команды:

Name/username              Host            Dyn Nat ACL Port     Status
0 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 0 offline]


Asterisk  установлен. Далее можно переходить к его настройке.

Далее нужно установить Asterisk GUI, для этого:

svn co svn.digium.com/svn/asterisk-gui/branches/2.0 asterisk-gui
cd asterisk-gui
./configure && make && make install
cd ..



После того как процесс сборки завершился, отредактируем два конфигурационных файла:

/etc/asterisk/manager.conf должен выглядеть примерно так:
[general]
enabled = yes
webenabled = yes
port = 5038
bindaddr = 127.0.0.1
[admin]
secret = 123456
read = system,call,log,verbose,agent,user,config,dtmf,reporting,cdr,dialplan
write = system,call,agent,user,config,command,reporting,originate

А /etc/asterisk/http.conf — так:
[general]
enabled = yes
enablestatic = yes
bindaddr = 0.0.0.0
redirect = / /static/config/cfgbasic.html
[post_mappings]
backups = /var/lib/asterisk/gui_backups

Перезапускаем asterisk:
 

/etc/init.d/asterisk start
 

Входим на веб-мордочку по адресу

http://server_ip_address:8088

!!! Если по окончании установки, при входе в GUI имеем зависание на следующем сообщении: "Checking write permission for gui folder"

то:

Сначала заменить строчку в этом файле

/var/lib/asterisk/static-http/config/js/astman.js
   
timeout : '60000' ,
   
на

timeout : '6' ,

Если не помогло, тупо сбросить все права

sudo chown -R asterisk:asterisk /var/lib/asterisk/
sudo chmod -R 777 /var/lib/asterisk/
sudo chown -R asterisk:asterisk /etc/asterisk/
sudo chmod -R 777 /etc/asterisk/


Все, после перелогина зависания быть не должно.

пятница, 26 июля 2013 г.

Блокировать экран по ALT+CTRL+L с использованием xscreensaver

Если вы установили screensaver, и вам необходимо блокировать экран, используя старую комбинацию ALT+CTRL+L, то вам необходимо:

1) Если вы не удалили старый gnome-screensaver, его нужно снести:

sudo apt-get remove gnome-screensaver

2) Теперь нужно создать символическую ссылку на старую команду, чтобы система посылала сигнал о блокировке экрана на xscreensaver:

sudo ln -s /usr/bin/xscreensaver-command /usr/bin/gnome-screensaver-command


Все, проверяем.

Перезагрузка gnome-shell из консоли

Случается (по крайней мере у меня на 19-й Федоре), когда gnome-shell падает, да с таким грохотом, что никакой atl+f2 не спасает. И что же делать? Перезапускать gdm3? Зачем, если можно всего-то сделать следующее:

1) Идем в консоль по atl+f1 / alt+f2 (каждому свое)
2) Пишем там команду w, чтобы узнать дисплей, с которого сидим:

clem@host:/$ w
 15:23:19 up 23:42,  5 users,  load average: 0.03, 0.11, 0.38
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
clem     tty1                      11:32    8:03  16.14s  0.01s /usr/lib/gnome-shell/gnome-shell-calendar-server
clem     pts/0    :1               11:13    4:07m  3.17s  9.61s gnome-terminal
clem     pts/1    :1               11:26    3:52m  2:17   0.27s bash
root     pts/2    :1               12:03   21:53   0.36s  0.36s /bin/bash -i
clem     pts/3    :1               14:56    0.00s  0.39s  0.00s w


В колонке ""FROM" наблюдаем наш дисплей, в данном случае - "1".

3) Прописываем следующую команду, заменяя мою "1" своим значением

clem@host:/$ export DISPLAY=:1.0

4) И напоследок вбиваем следующую команду:

clem@host:/$ gnome-shell --replace

5) По alt+f7 (или что там в вашем дистре) возвращаемся в графику и.... вуаля, все работает :)

понедельник, 22 июля 2013 г.

Установка Wine 1.6 в Fedora 19

Для установки вышедшей 20.07.2013 тестовой версии wine 1.6 нужно провернуть следующие операции:
 
yum upgrade
 
yum --enablerepo=updates-testing install wine
 
Это откроет возможность загрузки пакетов с тестовой ветки, и позволит установить последнюю находящуюся в репозитории версию пакета.

воскресенье, 21 июля 2013 г.

Установка Fedora 19 from USB-drive /dev/root does not exist

При установке Fedora 19 с флешки столкнулся со следующей проблемой, которая, похоже, существует еще с 17-й версии дистра. После загрузки с флешки система выдает сообщение следующего содержания:

dracut-initqueu[345]:Warning: Could not boot.
dracut-initqueu[345]:Warning: /dev/root does not exist.
 
Чтобы избавиться от этого, следует взять флешку, воткнуть её в любую машину под осью от Microsoft, и поменять метку диска на LIVE (обязательно большими буквами). Делать смену метки из-под винды, как не печально, самый простой и быстрый способ, ибо тот же gparted под моим Debian Wheezy это наотрез делать отказался, а команы типа mlabel, ntsflabel и иже с ними результата не давали, ссылаясь на какие-то там изьяны в самой флешке (как я понял, от контроллера памяти свистка зависит, сработают эти команды, или нет).

Переименовав флешку, тыкаем её обратно в машину, на которой будем производить установку, и, в меню выбора варианта установки, клацем Tab, и редактируем строку загрузки:

linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=Fedora\x2018\x20x86_64 quiet
(у вас может малость отличаться)
на
linuxefi /images/pxeboot/vmlinuz inst.stage2=hd:LABEL=LIVE quiet 

и жмакаем Enter. Мы по факту просто отредактировали строчку, указав новый лейбл, которым и правда называется сейчас наш свисток с федором. Все, загрузка пойдет как надо.

пятница, 12 июля 2013 г.

ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше

Недавно столкнулся с этой проблемой при попытке запуска 1С 7.7 на машине с Windows 7. Причем, проблема зависит, похоже, от фазы луны, или прочих космических дел, ибо та же 1С без проблем заработала на другой машине с "семечкой". Ситуация следующая: 1С припопытке соединиться с сервером базы данных (проблема возникает только если БД находится на SQL 2005, на 2008-м все работает из коробки) выдает ошибку

Для доступа к базе данных требуется ODBC-драйвер для MS SQL Server версии 3.50.0303 или старше

Никакие создания файлов bin-папке 1С для отключения проверки бла бла бла, или замена odbcbcp.dll, sqlsrv32.dll, sqlsrv32.rll на икспишные, или редактирование файлов, добавление строчек и прочая вздрочь с бубном не нужны, да и не всегда помогают, и по отдельности, и все вместе, и в любых комбинациях. Реальным решением проблемы есть
Секретный релиз платформы v77.27.1 Просто найдите в сети кем-то благородно выложенный архив (тут, к примеру) и установите это решение. И все заработает. Порядок установки приведу ниже: 
  1. Установить платформу из оригинального установщика;
  2. Установить и настроить HASP-ключ (обязательное условие, а то к вам придут врачи);
  3. Переименовать оригинальный файл BkEnd.dll в BkEnd0.dll (0 - это ноль);
  4. Скопировать файлы BkEnd.dll и BkEndUtls.dll из поставки в каталог, куда установлена 1с (например, C:\Program Files\1Cv77\BIN);
Для счастливых обладателей dbf-версии ничего не меняется.
Для обладателей sql-версии, у которых база данных размещается на MS SQL 2005/2008, необходимо соблюсти следующие требования для sql-логина (учетка, под которой 1с подключается к sql):
  • обладание, как минимум правами db_owner;
  • права на VIEW SERVER STATE;

С первым требованием все и так ясно, второе - требует пояснений. Для определения количества соединений к текущей базе данных, 1с обращается к системной таблице sysprocesses. Если у логина отсутствуют права на VIEW SERVER STATE, то будут видны только соединения, осуществленные под своей учеткой, что не совсем хорошо - нужно видеть все соединения с текущей базой, чтобы получать адекватые сообщения об ошибках. Большинство "специалистов" запускает 1с под учеткой SA (или другой, но с соответствующими суперправами), следовательно, у них такой проблемы не стоит. Зато имеется другая проблема - так называемый фоновый процесс сброса грязных страниц из кэша буфера данных, при выполнении которого, не удается запустить 1с в монопольном режиме.
В MS SQL 2005/2008 системная таблица (уже представление, оставленное для обратной совместимости) sysprocesses помечена устаревшей и в следующих редакциях MS SQL будет удалена. Компания Microsoft рекомендует использовать текущие аналоги - так и поступаем :) Для определения соединений к текущей базе данных (в этом исправленном релизе платформы 1с) больше не используется системная таблица sysprocesses (если ms sql 2005/2008, для ms sql 2000 используется).
Для того, чтобы дать права на VIEW SERVER STATE нужно выполнить простой скрипт:
USE master
GO

GRANT VIEW SERVER STATE TO

GO

Все остальные настройки по-умолчанию. Все, на этом проблема решена. Надеюсь, сэкономил кому-то драгоценное время.
 

суббота, 8 июня 2013 г.

Включение "Promiscuous Mod" для виртуального адаптера VMware Workstation (Linux)

Недавно столкнулся с тем, что при запуске vSphere ESXi 5.1 в VMware Worstation 9 на моем Debian Wheezy выпадало сообщение с предупреждением о невозможности перевода сетевого адаптера Ethernet0 (и прочие по нумерации) в Promiscuous Mod. Что сторопит машину на загрузке. Пока не разбирался, зачем конкретно нужен этот режим (подсчет трафика на сетевый картах, снифферигн, отлов пакетов с других сетевых адаптеров и т.д., но по сути - для поддержи работы режима моста в виртуальном сетевом адаптере), но избавиться от этого можно так:

В терминале от root'а:

# sudo chgrp <группа, от которой запускается виртуалка> /dev/vmnet0

# chmod g+rw /dev/vmnet0

(может быть и /dev/vmnet1 и т.д.)

Если же хочешь, чтобы кто-угодно мог включать этот режим на адаптере, то:

# sudo chmod a+rw /dev/vmnet0


После запускаешь виртуалку, и все будет ок.

вторник, 15 января 2013 г.

HP LaserJet 3050 Series + Windows 7 network scan & print

Мопед не мой, потому вот source #1 и source #2. Для настройки HP LaserJet 3052 (и прочих из этой серии) под семечкой, чтоб и сканил и печатал, да все это из сети, делаем следующим образом:

1) скачать с сайта HP:
upd-5_1_1_8232-pcl6_win-xp-vista.exe
FixScanUtility3_1.exe
hp_LJ3050-3052-3055-3390-3392_Full_Solution_EE.exe

2) распаковать upd-5_1_1_8232-pcl6_win-xp-vista.exe

3) запустить install.exe

4) установить принтер (автоматически запускается видусовская установкая принтера, в ней и устанавливать. Выбираем "Добавить сетевой, беспроводной или Bluetooth-принтер", далее выбираем наш принтер - дровишки он найдет сам!!!)

5) распаковать FixScanUtility3_1.exe

6) запустить FixScan с правами администратора

7) указать установленный раннее принтер и профиксить его

6) распаковать hp_LJ3050-3052-3055-3390-3392_Full_Solution_EE.exe

7) установить файлам hpzsetup.exe, HPZstub.exe, Setup.exe

- совместимость с "Windows Vista (Пакет обновления 2)"

- запуск с правами администратора

З.Ы. Setup.exe можно и не ставить с правами админа, ибо он походу трется в сеть же, и, если сеть с доменом и машинка, с которой пляшем, введена в домен, то авторизацию не пройдет, и к принтеру не законнектится (личный опыт).

8) запустить Setup.exe

9) следовать инструкциям, т.е. устанавливаем как обычно

10) после установки можно удалить "лишний принтер", установленный в пункте 4

11) В меню "Пуск" появится заветное "сканировать". Вуаля :)