Controlling userspace daemon from kernel module

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello all,

I realise that this question is perhaps similar to the 'Communicating from
userspace to kernel' thread but I'd like some more specific advice. We are
trying to get a kernel module to stop and start a userspace daemon and we're
not sure of the best way to go about it. Here are the options we can think of:

- use a /proc/sys entry where we can un/set a flag. We would then periodically
poll this value from the userspace daemon and react accordingly. We assume we
would have to use a timer to do this and it seems slightly inefficient to us.

- would it be possible to use a signal? Here we would have a SIGUSR handler in
the daemon. But we're not sure if a kernel module can send signals to userspace
processes. Anyway, we would have to read the pidfile from the kernel mod and
this might not be a great design decision.

- I believe we could write a syscall but we're a bit scared of going down this
route and not very experienced in kernel development. Can anyone recommend some
good books/docs on this? There are a lot of tutorials on the net but, frankly,
a lot do not go into much depth. (Although I appreciate them, I'm a bit sick of
the Linux Magazine-type, two-page tutorials which give you a high-level
overview but stop just where things get tricky)

Any further input into the above ideas or radically new suggestions would be
welcome as well as any recommendations for good kernel books. 

(The Rubini book is  good but obviously focused on devices. Linux Application
Development is also good but a bit thin on kernel issues, naturally. Any other
good ones?)

Cheers,
cam


	
		
__________________________________
Do you Yahoo!?
New and Improved Yahoo! Mail - 100MB free storage!
http://promotions.yahoo.com/new_mail 

--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
FAQ:           http://kernelnewbies.org/faq/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux