LINUX.ORG.RU

Сообщения cyberovskij

 

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

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

cyberovskij
()

не стартует mysql

поставил из 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
()

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

Извиняюсь за предыдущий пост, ночью голова плохо работает. Вот с исправлениями(правда как сделать отступы не знаю: Есть программа которая порождает дочерний процесс и из него передает родительскому привет. Задача стоит в том чтобы изменить код дочернего процесса и сделать его отдельной программой и вызвать через 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
()

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

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

cyberovskij
()

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