Welcome to the Linux Foundation Forum!

Exercise 39.1 - Can't set fake_service to start on boot

I am using the Ubuntu 18.04 (kernel 4.15.0-101) VM provided by LF for this course.

Ubunutu, so am using update-rc.d instead of chkconfig.

Have set up fake-service so that it starts and stops OK with the service program. When trying to set it to start on boot with:
sudo update-rc.d fake_service enable 2345
I get the error message:
update-rc.d: warning: enable action will have no effect on runlevel 2345
update-rc.d: error: no runlevel symlinks to modify, aborting!

The man page for update-rc.d says:
update-rc.d requires dependency and runlevel information to be provided in the init.d script LSB comment header of all init.d scripts
but this is missing from the script provided and there are no files for the service in /etc/rc(x).d.

Where have I gone wrong?

Comments

  • lee42x
    lee42x Posts: 351

    If the fake_service is in /etc/init.d directory, the service can be enabled/disabled/started and stopped using:
    systemctl start fake_service. To make it function on Ubuntu 18_04, please "sudo apt update" then "sudo apt upgrade" and it should work. The update fixed the error from "update-rc.d", my kernel is now 4.15.0-112

  • coop
    coop Posts: 843

    You are better off not using either chkconfig or update-rc etc, as all major distributions are on the systemd bandwagon now, including Ubuntu 18.04. So using systemctl will work everywhere and in practical terms the way to go (You have to go back about 4 years at least to find a distribution that doesn't have it.) In a future version of LFS201 we are likely to terminate all references to anything based on the older System V init and service, chkconfig etc as just excess knowledge unless you have to administer really old systems. (RHEL 6 for example) There is still some Ubuntu 16.04 out in the wild but keeping that stuff around for that is not worth the confusion IMHO :)

  • Thanks lee42x.

    Thanks coop. I was just trying to follow the guidance in the notes, as that is all I have to determine what I might need to know for the exam.

  • Hi coop, I tried using systemctl as suggested but still got an error:

    sudo systemctl enable fake_service
    fake_service.service is not a native service, redirecting to systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install enable fake_service
    update-rc.d: error: fake_service Default-Start contains no runlevels, aborting.

  • coop
    coop Posts: 843

    It's not meant to be run under systemctl; for that you have the other scriptlet, "fake2.service". The lab description says one lab is for System V init and the other for systemd (systemctl)

  • Sorry coop, but the course exercises are very confusing in this area. Are you saying I should just not bother with exercise 39.1 ?

    I have successfully completed exercise 39.2 on systemd.

  • coop
    coop Posts: 843

    no, I'm saying you cannot combine fake2_service with System V init or fake_service with systemd/systemctl. There are two labs, one for each methods. I am saying as a practical matter the first lab is a legacy task as System V init is disappearing, I cannot predict what is on the exams but they tend to look forward not backward.

    I don't know why you have trouble running the first one, but using service and/or chkconfig on Ubuntu is unnatural to begin with as they only emulate it as they use a more debian based view, and Ubuntu 18.04 and later has all the systemd stuff anyway.

  • OK, thanks coop. I'll move on.

Categories

Upcoming Training