пятница, 13 марта 2015 г.

Правильная демонизация в perl

sub daemonize {
  logger('Entering Daemon mode');
  chdir '/' or die "Can't chdir to /: $!";
  umask 0;

  open STDIN,  '<', '/dev/null' or die "Can't read /dev/null: $!";
  open STDOUT, '>', '/dev/null' or die "Can't write to /dev/null: $!";
  open STDERR, '>', '/dev/null' or die "Can't write to /dev/null: $!";

  my $pid = fork;
  exit if $pid;
  if (!defined $pid) { die "Couldn't fork: $!" }
# Here you may want to detach script output from console
# logger_del('console'); #(*)
  setsid() or die "Can't start a new session: $!";

# logger('Now in Daemon mode'); #(*)
  say 'Now in Daemon mode';

  return
}

* 'logger()' is my own tool for convinient data output, you can simply replace it with 'say' or 'print'

четверг, 12 марта 2015 г.

среда, 11 марта 2015 г.

понедельник, 16 февраля 2015 г.

Windows 7 x64 + 1С выгрузка из MySQL

Для правильной работы надо установить ставить MySQL Connector/ODBC x86:
http://dev.mysql.com/downloads/connector/odbc/

При добавлении нового DSN через "Панель управления" - "Администрирование" - "Источники данных (ODBC)" 1С не может произвести выгрузку , т.к. "Источники данных (ODBC)" запускает x64 версию конфигуратора ODBC, а 1С - 32-битное приложение. Решить проблему можно в x86 версии конфигуратора ODBC, запустив:
%SystemRoot%\SysWOW64\odbcad32.exe

Детальнее можно почитать в FAQ:
http://dev.mysql.com/doc/connector-odbc/en/connector-odbc-errors.html

среда, 21 января 2015 г.

Инкрементация в bash

(( x++ )) или (( x += 1 )) или let x++

Создание раздела на большом диске

# parted /dev/<диск>
mklabel gpt
unit TB
mkpart primary 0 <кол-во терабайт диска>
print
quit

Горячая замена жестких дисков

При горячей замене жесткого диска, его следует сначала отмонтировать:
umount /dev/sdX

Затем записать все буферы из памяти на физические накопители:
sync

И удалить жесткий диск из списка устройств:
echo 1 >/sys/block/sdX/device/delete


Жесткий диск можно отключать.

После подключения нового диска, следует выполнить поиск новых устройств:
for i in $(ls /sys/class/scsi_host/); do echo "- - -" > /sys/class/scsi_host/$i/scan; done