abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
dnes 08:00 | Zajímavý software

Beaker Browser (Wikipedie) byl vydán ve verzi 1.0. Jedná se o experimentální peer-to-peer webový prohlížeč vycházející z Chromia. Uživatel jej může používat také k publikování svých webových stránek (Hyperdrive) pomocí protokolu Hypercore (hyper://). Nepotřebuje tak klasický webový server.

Ladislav Hagara | Komentářů: 0
dnes 07:00 | Nová verze

Byla vydána nová verze 20.2 linuxové distribuce Manjaro (Wikipedie). Její kódové jméno je Nibia. Ke stažení je v edicích GNOME, KDE a XFCE. Přehled novinek v oficiálním oznámení.

Ladislav Hagara | Komentářů: 0
včera 21:55 | Zajímavý článek

Konsorcium Linux Foundation zveřejnilo čtyřiaosmdesátistránkovou Výroční zprávu za rok 2020 (pdf).

Ladislav Hagara | Komentářů: 1
včera 13:44 | Komunita

Hector "marcan" Martin – hacker, který jako první zveřejnil zdrojové kódy ovladače pro Kinect pod svobodnou licencí nebo dostal Linux a Steam na PlayStation 4 – se bude díky podpoře na Patreonu od ledna naplno věnovat Linuxu na Apple Siliconu aneb Linuxu na počítačích Apple s novým ARM procesorem M1.

Ladislav Hagara | Komentářů: 19
včera 07:00 | Zajímavý článek

Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) rozšířil své podpůrné materiály týkající se kybernetické bezpečnosti o dokument "Ransomware: Doporučení pro mitigaci, prevenci a reakci" (pdf).

Ladislav Hagara | Komentářů: 4
2.12. 20:22 | Nová verze

Příspěvek na blogu webové aplikace pro spolupráci na zdrojových kódech pomocí gitu Gitea (Wikipedie) představuje novinky a ukazuje náhledy nové major verze 1.13.0 této v programovacím jazyce Go naprogramované aplikace.

Ladislav Hagara | Komentářů: 0
2.12. 19:00 | Nová verze

Byla vydána nová verze 2020.12.01 distribuce BlackArch Linux (Wikipedie). Jedná se o distribuci založenou na Arch Linuxu zaměřenou na penetrační testování a výzkum počítačové bezpečnosti. Z novinek lze zmínit přes 100 nových nástrojů. Aktuálně jich je 2608.

Ladislav Hagara | Komentářů: 0
2.12. 18:00 | Komunita

Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu aktuálně činí 0,90 %. Nejčastěji používanou linuxovou distribucí je Ubuntu 20.04.1 LTS 64 bit. Přehled her oficiálně podporujících SteamOS a Linux na stránkách Steamu. Přehled her pro Windows běžících na Linuxu díky Protonu na stránkách ProtonDB.

Ladislav Hagara | Komentářů: 0
1.12. 17:22 | Bezpečnostní upozornění

Byly zveřejněny informace o dvou bezpečnostních chybách CVE-2020-14360 a CVE-2020-25712 v X.Org serveru. Chyby jsou zneužitelné k lokální eskalaci práv (pokud X server běží pod právy roota).

Ladislav Hagara | Komentářů: 14
1.12. 16:22 | Nová verze

Byla vydána nová verze 4.0 aplikace pro práci s KeePass databázemi - Password Safe. Přináší zejména plnou podporu Librem 5, PinePhone a dalších linuxových telefonů, dále pak výrazné zrychlení při práci s databází a opravu mnoha chyb. Aplikace je k dispozici na Flathubu, případně jako distribuční balíček.

David Heidelberg | Komentářů: 2
Používáte některý systém pro správu verzí (VCS) jiný než git?
 (10%)
 (19%)
 (14%)
 (17%)
 (55%)
 (17%)
Celkem 42 hlasů
 Komentářů: 1, poslední 2.12. 03:00
Rozcestník

Dotaz: SIGCLD, system, deamon

16.7.2004 13:15 honza
SIGCLD, system, deamon
Přečteno: 50×
v minulosti (napr. suse 7.1) mi fungoval deamon program, ktery na zacatku ignoroval SIGCLD. V deamonu se provadelo volani.. ret = system("aaaa_exe"); ret pote obdrzel exit kod provadeneho programu. na novych systemech (suse 9.1) je nyni ret=-1 a errno=10. Kdyz SIGCLD ale neignoruji, tak se hromadi zobie's.

Nema nekdo poneti, jak je to treba programovat dneska?

Odpovědi

16.7.2004 14:43 Maude Lebowski
Rozbalit Rozbalit vše Re: SIGCLD, system, deamon
ja tyhle veci neprogramuju pres system, ktery ma omezene pouzivani prave funkci na cekani, ale mam vlastni wraper: ( veci za include musi byt v < > zavorkach)
/*

  execute system utilities, run a specified binary with
  string arguments and return an output as a single string 

  $Id$

*/

#include unistd.h
#include stdio.h
#include stdlib.h
#include string.h
#include syslog.h
#include sys/types.h
#include sys/wait.h

#define TIMEOUT_SEC 1
#define TIMEOUT_MSEC 200000
/* how long we will waiting for childs... */

int exec_command(const char *command, char *const args[], char *output, int len)
{

  /* parameters:

  - command is a command (the same meaning as path in exec functions)
  - args[] are arugumets for execvp commands (null terminated array of strins)
  - output is output buffer previously allocated to lenght len
  - len is the max. lenght of output

  */

  pid_t f;
  int pipa[2];      /* pipa = the tap to get out beer from barel,in czech:-) */
  int i,j,n;
  fd_set rfds;
  struct timeval tv;

  if( pipe(pipa) < 0 ) {
    syslog(LOG_ERR,"pipe: %m: cannot create for %s\n",command);
    return(-1);
  }

  f = fork();
  if( f < 0 ) {
    syslog(LOG_ERR,"Fork failed. The %s move failed.\n",command);
    return(-1);
  }
  else if( f == 0 ) {
    close(1);
    dup(pipa[1]);
    close(pipa[0]);
    close(pipa[1]);
    fprintf(stderr,"%s %s %s %s\n",command,args[0],args[1],args[2]);
#ifdef DEBUG
    fprintf(stderr,"%s %s %s %s\n",command,args[0],args[1],args[2]);
#endif
    if( (j = execvp(command,args)) < 0 ) {
      syslog(LOG_ERR,"execlp %s: %m\n",command);
      /* a child should (!) write any output else a thread is stoped forever 
         (if block-read without select is used in main) or zombie is created */
      write(1,"",len-1);
    }
    exit(j);
  }
  else {

    /* use of the non-block input when no data are presented */ 
    n = 0;
    strcpy(output,"");
    FD_ZERO(&rfds);
    FD_SET(pipa[0], &rfds);
    tv.tv_sec = TIMEOUT_SEC;
    tv.tv_usec = TIMEOUT_MSEC;
    if( select(pipa[0]+1, &rfds, NULL, NULL, &tv) ) {
      read(pipa[0],output,len);
    }
    for( i = 0; output[i] != '\0' && i < len ; i++)
      if( output[i] == '\n' )
        output[i] = '\0';
#ifdef DEBUG
    printf("Child returned: >%s<\n",output);
#endif
    if( waitpid(f,&i,0) < 0 ) {
      syslog(LOG_ERR,"wait: %m\n");
      return(-1);
    }
    if( !WIFEXITED(i) ) {
      syslog(LOG_ERR,"Child exited with code %d\n",WEXITSTATUS(i)); 
      return(-1);
    }
  }

  return(i);
}
17.7.2004 12:41 honza
Rozbalit Rozbalit vše Re: SIGCLD, system, deamon
predem dekuji za zaslany kod. Provedu obsahly test v mem programu a v pripade chyb nebo nesrovnalosti se ozvu.

P.S.

'Maude Lebowski' je cool

'pipa = the tap to get out beer from barel..' to mi pripada ne tak cool - jestli to smim pouzit, tak to vyndam ?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267   www.czech-server.cz
© 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.