LINUX.ORG.RU

Сообщения cyberovskij

 

какую ОС лучше выбрать для Virtual server

Форум — Admin

Пров предлагает выбрать из списка осей такие: Centos 5.5, debian 5 lenny, ubuntu 10.04. Какую из них лучше выбрать для Virtual server с точки зрения безопасности ? Какая из них имеет хорошую криптографическую поддержку (SSL, TLS , софт для поддержки несимметричного шифрования...)? Для какой из них больше всего разных примочек можно доставить? Какие между ними существенные различия?

cyberovskij
()

не стартует mysql

Форум — Admin

поставил из source mysql. при попытке запустить bin/mysqld_safe --user=mysql & запускается на несколько секунд а затем stopped. Вот log из файла .err

110226 18:30:28 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
110226 18:30:29 [Note] Event Scheduler: Loaded 0 events
110226 18:30:29 [Note] /usr/local/mysql/libexec/mysqld: ready for connections.
Version: '5.1.53'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
110226 18:30:36 [Note] /usr/local/mysql/libexec/mysqld: Normal shutdown

110226 18:30:36 [Note] Event Scheduler: Purging the queue. 0 events
110226 18:30:36 [Note] /usr/local/mysql/libexec/mysqld: Shutdown complete

110226 18:30:36 mysqld_safe mysqld from pid file /usr/local/mysql/var/linux2.pid ended
. В чем причина останова сервера?

cyberovskij
()

создание дочерних процессов_

Форум — Development

Извиняюсь за предыдущий пост, ночью голова плохо работает. Вот с исправлениями(правда как сделать отступы не знаю: Есть программа которая порождает дочерний процесс и из него передает родительскому привет. Задача стоит в том чтобы изменить код дочернего процесса и сделать его отдельной программой и вызвать через exec. Ниже привожу код с заданием и переработанный мною. Просьба исправить что не так и не сильно пинать, поскольку я никогда не писал на С а тем более под линукс .

Исходный текст


#include "myheader.h"

FILE *stream;

int main() {

 pid_t child_pid;

char filename[] = "/tmp/myprogram.XXXXXX";

int fd;

printf("Parent: The main program's PID is %u\n", (unsigned int) getpid());

/* Создает временный файл. */

fd = mkstemp(filename);

if (fd < 0) 

{ 

fprintf(stderr, "Parent: Can't create temporary file:" " %s\n",strerror(errno));

exit(EXIT_FAILURE);

     }

 stream = fdopen(fd, "r+");

if (stream == NULL) { fprintf(stderr, "Parent: Can't create stream for" " temporary file %s: %s\n", filename, strerror(errno));

exit(EXIT_FAILURE); 

}

if (unlink(filename) < 0) fprintf(stderr, "Parent: Error unlinking temporary file" " %s: %s\n", filename, strerror(errno));

/* Создает дочерний процесс. */

child_pid = fork();

if (child_pid != 0) 

{

/* Это родительсий процесс */

if (child_pid == -1)

 {

/* Ошибка при созд. дочернего процесса. */

fprintf(stderr, "Parent: Error creating a child:" " %s\n",strerror(errno));

exit(EXIT_FAILURE);

} 

exit(parent(child_pid));

 } 

else 
{

 /* Это дочений оцес */ exit(child());

}   

}

------------------------------

/* * parent.c * */

#include "myheader.h"

enum { MSGSIZE = 20 };

extern int parent(pid_t child_pid) {

int child_status;

char message[MSGSIZE];

assert(child_pid > 0);

assert(stream != NULL);

printf("Parent: My PID is %u and my child's PID is %u\n", (unsigned int) getpid(), (unsigned int) child_pid); 

wait(&child_status);

printf("Parent: Child exited with code %d\n", child_status); 

if (fseek(stream, 0, SEEK_SET) != 0)

 { 

fprintf(stderr, "Parent: Error seeking in temporary file:" "%s\n", strerror(errno));

return 1;

}

if (fgets(message, MSGSIZE, stream) == NULL)

 { 

if (ferror(stream)) 

{ fprintf(stderr, "Parent: Error reading from" " temporary file: %s\n", strerror(errno));


 return 1; 

}

printf("Parent: No message from child" " has been received\n");

return 0; 

} 
printf("Parent: A message from child has been received:\n" "%s\n", message);

return 0;   

}

-------------------------------------------------- /* * child.c * */

#include "myheader.h"

extern int child() { assert(stream != NULL);

printf("Child: My PID is %u and my parent's PID is %u\n", (unsigned int) getpid(), (unsigned int) getppid());

if (fputs("Hello, Daddy!", stream) == EOF) 
{ 

fprintf(stderr, "Child: Error writing to temporary file:" " %s\n", strerror(errno));

return 1;

}

return 0;

}

А вот переделанный код. Код parent.c Я оставил без изменений


/* * main2.c * * */

#include "myheader.h"

FILE *stream;

int main() 

{ pid_t child_pid; 

char filename[] ="/tmp/myprogram.XXXXXX"; 

int fd;

printf("Parent: The main program's PID is %u\n", (unsigned int)getpid());

fd = mkstemp(filename);

if (fd < 0) {

fprintf(stderr, "Parent: Can't create temporary file:" " %s\n",strerror(errno));

exit(EXIT_FAILURE);

}

stream = fdopen(fd, "r+");

if (stream == NULL) 

{ fprintf(stderr, "Parent: Can't create stream for" " temporary file %s: %s\n", filename, strerror(errno));

exit(EXIT_FAILURE);

}

if (unlink(filename) < 0) fprintf(stderr, "Parent: Error unlinking temporary file" " %s: %s\n", filename, strerror(errno));

child_pid = fork();

if (child_pid != 0) 

{

 if (child_pid == -1) 

{

 fprintf(stderr, "Parent: Error creating a child:" " %s\n",strerror(errno));

exit(EXIT_FAILURE);

} 

exit(parent(child_pid));

} 

else 

{ 

execl ("/bin/example2", "example2", (char*) 0);

}   

}

----------------------------

/* * child2.c * */

#include "myheader.h"

int main() 

{

pid_t child_pid;

char filename[] = "/tmp/myprogram.XXXXXX";

int fd;


stream = fopen(filename, "r+");

if (stream == NULL) 

{ 

fprintf(stderr, "Child: Can't create stream for" " temporary file%s: %s\n", filename, strerror(errno));

exit(EXIT_FAILURE);

} 

if (unlink(filename) < 0) 

fprintf(stderr, "Child: Error unlinking temporary file" " %s: %s\n",filename, strerror(errno));

printf("Child: My PID is %u and my parent's PID is %u\n", (unsigned int) getpid(), (unsigned int) getppid()); 

if (fputs("Hello, Daddy!",stream) == EOF) 

{

fprintf(stderr, "Child: Error writing to temporary file:" " %s\n",strerror(errno));

}

}

cyberovskij
()

видеохостинг

Форум — Multimedia

Нужно создать видеохостсервер в домашней сети. Требования такие: 100Мбит канал на отдачу,раздавать примерно на 100 одновременных просмотров файлов в формате divx. Как такое делается с помощью nix-ов? Приму с благодарностью любой совет по этой теме.

cyberovskij
()

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