I am writing a Daemon and I want to use start-stop-daemon command to do it but, when I use it in the command line I get :
The command could not be located because '/sbin' is not included in the PATH environment variable.
This is most likely caused by the lack of administrative privileges associated with your user account.
start-stop-daemon: command not found
but when i use it with sudo it run perfect but i need it to run in daemon and i think it is not good to use sudo in bash script in daemon something like :
sudo start-stop-daemon --start --background ...
Isn't it? When I deleted sudo
from it it gave me command not found. How can i fix it? if it is wrong to use sudo in daemon.
start-stop-daemon
can also set the user ID for the daemon process.
That said, you'd generally use start-stop-daemon
from a script in /etc/rc.d
, which is run with root privileges either from the init
system that is being used this week (sysvinit, upstart, systemd, ...) and/or from the service(8)
command.
So, if a user should be able to start/stop the service (which is a rather uncommon scenario), you'd use the sudoers
file to grant them access to the service
command, with the name of your service as a mandatory first argument.
In general though, write your service so it can be simply started at boot or during installation, and used by users as long as it's running. If the user needs to be able to start and stop instances of the service, then your daemon is in the business of managing instances, and the instance manager should be continually running, and users then contact this service via a socket (so users don't need sudo
at all, which would make the lives of many administrators who don't install sudo
quite a bit easier).