четверг, 17 июля 2014 г.
Как узнать прогресс исполнения команды dd
Когда я начал активно использовать команду dd
, меня стало сильно напрягать отсутствие какой-либо индикации выполнения команды. Кроме того, хотелось узнать, а долго ли еще ждать.
Оказалось, нужно внимательно читать help:
$ dd if=/dev/zero of=/dev/null&
[1] 6826
$ kill -USR1 6826
43492667+0 records in
43492667+0 records out
22268245504 bytes (22 GB) copied, 19,1004 s, 1,2 GB/s
или в общем случае:
$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid
18335302+0 records in
18335302+0 records out
9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s
вторник, 15 июля 2014 г.
Простой демон
Функция создания демона
int daemonize() { int pid = fork(); if (pid == -1) // ошибка { printf("Start Daemon Error: %s\n", strerror(errno)); return 1; } else if (!pid) // если это потомок { umask(0); setsid(); chdir("/"); close(STDIN_FILENO); close(STDOUT_FILENO); close(STDERR_FILENO); return 0; } else // если это родитель { // завершим процесс exit(0); } }
Использование
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <errno.h> #include <sys/stat.h> int main(int argc, char** argv) { //Создаем из процесса демона int res = daemonize(); if(res) return -1; //Основной код программы ... return 0; }
Подписаться на:
Сообщения (Atom)