ar- / incron

cron-like daemon which handles filesystem events
Other
229 stars 51 forks source link

use execl() instead of system() as possible fix for #52 #56

Open philfry opened 5 years ago

philfry commented 5 years ago

Hi, I'm also afflicted with #52. The problem only occurs with system incronjobs, while user incrontabs are not affected. In UserTable::OnEvent(…) these type of incronjobs are handled differently. Incrond fork()s and handles the logic in the child process. User incrontabs are invoked by jumping to UserTable::RunAsUser(…) which runs the specified command by execlp()ing, replacing the child process. System incrontabs' commands are run using system() which is basically another fork() and an execl() – leading to another child process and keeping the first child alive. By replacing system() with execl() the first child should be replaced by the desired command and no additional incrond-processes should show up. Please correct me if I'm wrong.