I need to develop an /etc/init.d script to start and stop a server (binary executable) in Debian 10 Buster. Whereas in earlier versions of Debian, you would write a complete shell script that issues calls to 'start-stop-daemon', in recent releases these mechanics seem to be have been abstracted away. The manual page 'init-d-script' gives a simple script that will start and stop a server based on setting a single variable 'DAEMON'.

However I need to customise by writing a lock file to disc after the server starts, change the current working directory and pass a custom argument to the server.

The manual page refers to developing override functions such as 'do_start_override' and 'do_stop_override' which presumably are called instead of the default functions. How should I approach writing an override function? Should I copy and paste the function 'do_start_cmd()' from '/lib/init/init-d-script' and modify it? Or should I call the function 'start_daemon()' that is defined in '/lib/lsb/init-functions'?

  • 3
    Don't write ancient init.d scripts anymore, just make a systemd unit. – Michael Hampton Aug 11 at 19:46

Smartass response:

apt-get install sysvinit-core

Disclaimer: I have not done this on Buster, don't try it on an important system.

Assuming you'd like to stick with the new default since Jessie, systemd, the init.d scripts are not the preferred method. Configuring a systemd service unit would be the way to go.

  • Thanks, so my options were to roll back to the older System V init system by installing sysvinit-core, then write an /etc/init.d script, or stick with the new systemd and write a service unit file? I have done the latter, and it proved pretty straightforward. – tcdaly Aug 12 at 15:41
  • 1
    The switch to systemd has been a bit controversial, as it doesn't add much beyond complexity for the average server, hence the smartass part. ;-) It has its merits on more dynamic systems, like a desktop. But neither is inherently better. – Someone Aug 13 at 19:01

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.