LINUX.ORG.RU

Сообщения Wade

 

Детективная история с сервером Debian OpenVpn Postgresql

Добрый день. Столкнулся с очень странной историей. Имеется сервер debian 6+openvpn+postgresql+apache+php Сервер используется для сбора статистики с информационных терминалов - каждый терминал создает через gprs модем vpn туннель до сервера, и скидывает разную статистику. На этом же сервере есть веб морда для клиентов. В последнее время с сервером начинается странное - через 3 часа 45 минут он перестает отвечать postgresql c ошибкой too many connection. В процессах висит в 3-4 раза больше апачей из-за этого. Но самое интересное - отваливается внутренний интерфейс для openvpn. Т.е на внешнем интерфейсе все ок, а по туннелю не подключиться.

Причем странное расписание - трое суток подряд через каждые 3 часа 45 минут все зависает примерно на 5 минут, а потом на 4 или 5 дней все нормально.

Честно говоря уже и не знаю, что смотреть - в кроне ничего нет,спам вроде не отправляется, по логам апача вроде нет подозрительных запросов.

Что делать? Буду рад любым вариантам)

Wade
()

Заблокировать ком порт

Приветствую. Для того чтобы устройство на ttyACM0 правильно функционировало, необходимо чтобы программа открывала его в монопольном режиме, например program открывает /dev/ttyACM0, тогда команда echo «aaaa» > /dev/ttyACM0 должна закончиться неудачей. Minicom это делает, а у меня не получается. Вот код открытия:

fd = open(device, O_RDWR | O_EXCL );
      if (fd == -1)
      {
       /*
	* Could not open the port.
	*/

	perror(device);
      	//return NULL;
      }
    
    struct flock lock;
    lock . l_type = F_WRLCK;
    lock . l_whence = SEEK_SET;
    lock . l_start = 0;
    lock . l_len = 0;

    if (fcntl (fd, F_SETLK, & lock) < 0) {

      perror(device);
      //return NULL;
    }

    int status;
    
    ioctl(fd, TIOCMGET, &status);
    status &= ~TIOCM_RTS;
    status &= ~TIOCM_DTR;
    status &= ~TIOCM_CTS;
    status &= ~TIOCM_DSR;

    if (ioctl(fd, TIOCMSET, &status))
    {
      perror("ioctl");
      //return 0;
    }

    struct termios options;

    /*
     * Get the current options for the port...
     */

    tcgetattr(fd, &options);

    cfsetispeed(&options, baud_rate);
    cfsetospeed(&options, baud_rate);
    
    options.c_cflag &= ~PARENB;
    options.c_cflag &= CSTOPB;
    options.c_cflag &= ~CSIZE;
    options.c_cflag |= CS8;
    options.c_cflag &= ~CRTSCTS;
    options.c_oflag &= ~OPOST; //raw output
    
    options.c_lflag &= ~(ICANON | ECHO | ISIG);

    /*
     * Enable the receiver and set local mode...
     */

    options.c_cflag |= (CLOCAL | CREAD | baud_rate);
    
    /*
     * Set the timeouts VMIN is the minimum amount of characters to read
     */
    
    //options.c_cc[VMIN] = 0;
    
    /*
     * The amount of time to wait for the amount of data specified by VMIN in tenths of a second
     */
    
    //options.c_cc[VTIME] = 0;

    /*
     * Set the new options for the port...
     */

    tcsetattr(fd, TCSANOW, &options);

Подскажите, что не так. Либо кусок кода.где работает блокировка. Спасибо

Wade
()

Процесс, занимающий файл/устройство

Добрый день. Ubuntu 10.10 У меня существует устройство /dev/ttyACM0 C этим устройством работает программа program, т.е. если сделать lsof /dev/ttyACM0, то выведется именно program В какой то момент устройство перестает работать. Это случается если на него послать команду отличную от текущего протокола. Т.е. если во время работа program из другой консоли отправить echo «aaaa» > /dev/ttyACM0, то устройство перестает работать. Так вопрос в том как отловить процесс, который отсылает какой то ввод на это устройство не по протоколу. В бесконечном цикле lsof не получилось выявить процесс. Какие еще существуют варианты? Либо возможно ли весь ввод на /dev/ttyACM0 логировать где-нибудь? По такому логу я бы смог отловить проблему. Спасибо.

Wade
()

Задать уровень громкости alsamixer

Добрый день.

Стоит debian 5, уровень громкости регулирую через alsamixer Задача задать уровень звука не через графическое представление, а как параметр от 0 до 100 в командной строке. у alsamixer не нашел такого параметра.

Заранее спасибо

Wade
()

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