Home Linux Kgotobed – A Kernel Module That Forcibly Shutdown Your Linux System

Kgotobed – A Kernel Module That Forcibly Shutdown Your Linux System

Forcibly Shutdown Your Linux System At A Specific Interval Using Kgotobed Kernel Module.

By sk
Published: Last Updated on 373 views

Staying up late is bad for the health. But, who cares? I have been a night owl for years. I usually go to bed after 12 am, sometimes after 1 am. The next morning, I snooze my alarm at least three times, wake up tired and grumpy. Everyday, I promise myself I will go to bed earlier, but ended up going to bed very late as usual. And, this cycle continues! If you're anything like me, here is a good news. A fellow late nighter has developed a Kernel module named "Kgotobed" that forces you to go to bed at a specific time. Meaning - Kgotobed will forcibly shutdown a Linux system at specific time.

Why should I use this? I have plenty of other options. I can set a cron job to schedule system shutdown at a specific time. I can set up a reminder or alarm clock. I can use a browser plugin or a software. You might ask! However, they all are can easily be ignored or bypassed. Kgotobed is something that you can't ignore. Something that can't be disabled even if you're a root user. Yes, it will forcibly power off your system at the specified time. There is no snooze option. You can't postpone the power off process or you can't cancel it either. Your system will go down at the specified time no matter what. You have been warned!!

Install Kgotobed in Linux

Make sure you have installed dkms. It is available in the default repositories of most Linux distributions.

For example on Fedora, you can install it using the following command:

$ sudo dnf install kernel-devel-$(uname -r) dkms

On Debian, Ubuntu, linux Mint:

$ sudo apt install dkms

Once installed the prerequisites, git clone Kgotobed project.

$ git clone https://github.com/nikital/kgotobed.git

This command will clone all contents of Kgotobed repository in a folder named "kgotobed" in your current working directory. Cd to that directory:

$ cd kgotobed/

And, install Kgotobed driver using command:

$ sudo make install

The above command will register kgotobed.ko module with DKMS (so that it will be rebuilt for every kernel you run) and Install gotobed utility in /usr/local/bin/ location and then register, enable and start kgotobed service.

Forcibly Shutdown Linux System using Kgotobed Kernel Module

By default, Kgotobed sets bedtime to 1:00 AM. That said, your computer will shutdown at 1:00 AM no matter what you're doing.

To view the current bed time, run:

$ gotobed 
Current bedtime is 2018-04-10 01:00:00

To move the bed time earlier, for example 22:00 (10 PM), run:

$ sudo gotobed 22:00
[sudo] password for sk: 
Current bedtime is 2018-04-10 00:58:00
Setting bedtime to 2018-04-09 22:00:00
Bedtime will be in 2 hours 16 minutes

This can be helpful when you want to sleep earlier!

However, you can't move the bed time later i.e after 1:00 AM. You can't unload the module, and adjusting system clock won't help either. The only way out is a reboot!!

To set different default time, you need to customize kgotobed.service (by editing it or by using systemd drop-in).

Uninstall Kgotobed

Not happy with Kgotobed? No worries! Go to the "kgotobed" folder which we cloned earlier and run the following command to uninstall it.

$ sudo make uninstall

Again, I warn you there is no way to snooze, postpone, or cancel the power off process, even if you're a root user. Your system will go down forcibly at the specified time.

Kgotobed is not for everyone! It may drive you nuts when you're working on an important task. In such cases, make sure you have saved the work from time to time or use some advanced utilities that help you to auto shutdown, reboot, suspend, and hibernate your system at a specific time as described in the following link.

Resource:

You May Also Like

Leave a Comment

* By using this form you agree with the storage and handling of your data by this website.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

This website uses cookies to improve your experience. By using this site, we will assume that you're OK with it. Accept Read More