Архив метки: freebsd

Приоритеты процессов в FreeBsd

Зачем они собственно нужны? А затем, чтобы если вдруг серверу «поплохело», он знал на какие процессы важно выделять процессорное время, а на какие можно «подзабить».

Например сервер доступа : день,  сетевая активность низкая, процессор не загружен обработкой сетевых пакетов, вполне можно выполнять все задачи. Вечер: идет дикая нагрузка на сетевую подсистему, процессор в полочке. Ничего страшного, бросаем все силы на обработку сетевых пакетов, на всем остальные задачи, не «системные», выделяем время по остаточному принципу.

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

nice -n [приоритет] [программа]

Это для запуска. Для уже запущеных процессов приоритет можно выставить командой:

renice  -n [приоритет] [PID]

Ошибка “Syntax error: Bad fd number” при вызове функции system c++

При вызове:

system("ipfw pipe list >& pipe.lst");

Вызывает возврат с ошибкой «Syntax error: Bad fd number»

Та же самая команда, выполненная на прямую в консоли, выполняется без ошибок. ОС FreeBSD. Необходимо записать в файл результат выполнения ipfw pipe list, включая stderr

Как костыль отлавливаю код возврата system. Но не хорошее решениие для меня, т.к. вижу код, но не вижу текста ошибки..

Особенности работы с Mysql во FreeBSD на с++

  1. После каждого выполнения запроса необходимо «сохранять» результат запроса при помощи mysql_store_result, иначе получаем ошибку
    Error: can't execute SQL-query Commands out of sync; you can't run this command now
  2.  Во FreeBSD не достаточно «выбрать базу» при выполнении mysql_real_connect(connectionNOC,hostbase,userbase,passbase,namebase,3306,0,0). Пришлось дополнительно её «перевыбирать» в запросом.

Итоговый шаблон работы с MySQL на FreeBSD:

string sql;
connectionNOC = mysql_init(NULL); 
mysql_real_connect(connectionNOC,hostbase,userbase,passbase,namebase,3306,0,0)

   sql ="use noc";
   if (mysql_query(connectionNOC, sql.c_str()) != 0){fprintf(stderr,"Error: can't execute SQL-query\n");exit(1);};      
   result=mysql_store_result(connectionNOC);    

  // Шаг 1
  sql ="SET NAMES utf8";
  if (mysql_query(connectionNOC, sql.c_str()) != 0){fprintf(stderr,"Error:  can't execute SQL-query\n");exit(1);};      
  result=mysql_store_result(connectionNOC);    

  // Шаг 2
   sql="select * from lanbshconfig";
   if (mysql_query(connectionNOC, sql.c_str()) != 0){
   fprintf(stderr,"Error: can't execute   SQL-query %s\n",mysql_error(connectionNOC));
   exit(1);
  };