- cross-posted to:
- linux_memes@programming.dev
- cross-posted to:
- linux_memes@programming.dev
cross-posted from: https://swg-empire.de/post/3428368
Though you still have to suspend by yourself when you’re done.
was i supposed to find that out by myself
Just do what i did, wait for someone to post about it on lemmy then learn about it from that
That’s actually how i learned most of the things i knowLinux newb here. What does this mean? My knowledge of systemd is that it is responsible for things like mounting disks and running networking. So does this mean I can ask systemd to grab a new IP address every x hours, even if the machine is asleep?
Systemd at its core starts stuff when your Linux system boots and during normal operation. It can also start stuff at specific times. That was traditionally done by cron.
But of course when you set up to run something at midnight it cannot run if the system is in standby. But with the WakeSystem=true option you can tell it to basically set an alarm for the computer to turn itself back on and do whatever you want it to do.
It does not turn your computer back to sleep, though. That’s something you have to script yourself.
I hope they add the ability to turn the computer on even if it is completely shut off. That would make keeping my family’s computers updated much easier.
I hope they add the ability to turn the computer on even if it is completely shut off. That would make keeping my family’s computers updated much easier.
That’s probably not possible, but you could do it with a microcontroller and a relay bridging the power switch.
If you read the corresponding feature request it actually seems to be pretty easy. They were just arguing about implementation details.
Windows has supposedly also done this for a while now.
Of course it depends on hardware capabilities. But I guess it’s common enough now.
Edit: This is actually trivial to implement with the
rtcwake
command. Usually available in linux-utils or similar packages.rtcwake --list-modes
shows you what modes your system supports.Edit 2: Like, this is beyond trivial. Just echo the desired waketime as a Unix timestamp to
/sys/class/rtc/*/wakealarm
and you’re set. Doesn’t matter if the system is just sleeping or turned off entirely.Edit 3: But waking from power down seems not to be supported on the Steam Deck. Only from suspend.
Systemd is a collection of low-level system utilities. Its primary responsibility is managing services and serving as the init process (PID 1, the first userspace process started by the kernel), but it also has other components, like
systemd-boot
(a boot loader and GRUB alternative),journald
(system logging),networkd
(network interface management),resolved
(DNS resolver), orudevd
(manages device files in/dev
).People tend to vilify systemd because it is maintained by Red Hat, a company with many controversies, and a pariah among the more extreme FOSS enthusiasts; and because it’s seen as bad practice to have a single entity be responsible for so many low-level system components.
Note: the
-d
suffix is not exclusive to systemd things. It simply marks the program as a daemon, a long-running background process that provides some kind of service. For example,sshd
(SSH server) orhttpd
(Apache server on some distros) are not parts of systemd.To answer your question: not really. As far as I know, the network interface won’t have an IP address unless the computer is turned on. If you use a timer (or any other method for that matter) to power on the computer, it will request an address from DHCP as soon as the interface is brought up (unless it has a static address).
A more practical application would be scheduling long, unattended tasks, like updates or making backups.
Man I expected this is be a shit post copypasta based on the star wars tragedy of Darth Plagueis not a 40 minute researched talk.
Welcome to Lemmy! We got comp-sci majors, ADHD worriers, AND hyperfocus autistics. Take a seat anywhere!
I’m just here for the free donuts.
Is sshd really not part of systemd? I seem to remember needing to run systemctl restart sshd after making changes to the sshd config file but it’s been a while since I’ve done that.
I also use systemd to automatically start plex, sonarr, radarr, transmission, and maybe a few other things as well and if they need to be restarted I’d use a similar command on Ubuntu. Or I’d run systemctl status plexmediaserver to see if it was running correctly.
I’m not an expert though so maybe I’m doing it wrong or using the wrong terminology.
Systemd, through the
systemctl
command, only manages the services. The service itself is defined in a unit file, and it can come from any source, even written manually. The unit file is a text file that describes what the service is, what commands or programs should be executed when it starts or stops (forsshd
it’s/usr/bin/sshd -D
), what other services or conditions are required (e.g.multi-user.target
after the OS has entered multi-user mode), and much more.When a package installs a unit file, it will be installed to a subdirectory in
/usr/lib/systemd
, typicallyuser
orsystem
, and when it is enabled, it will be symlinked to a subdirectory in/etc/systemd
.OpenSSH itself, which provides
sshd
on most systems, is developed by the OpenBSD team and ported to other OSes by the OpenSSH Portability Team.That makes a lot of sense. I actually wrote my own unit files for Jackett and to autostart a virtual machine and moved them into multi-user target wants using the enable command. I guess my thought was that by adding the unit file to systemd it made the program part of systemd in a way but now that I think more about it, saying any of these programs are part of systemd doesn’t actually make sense. Just because sshd came pre-installed with Ubuntu doesn’t make it part of systemd any more than plex is part of systemd.
Thanks for helping me understand!
Is sshd really not part of systemd?
Yes, it’s not a part of systemd. By running
systemctl restart sshd
you are just restarting the sshd systemd service. Systemd service files for things like ssh and transmission come with their respective packages.You can see what I mean here. The
openssh-server
package for Ubuntu comes with thesshd.service
file.Yes my incorrect assumption was due to the fact that sshd came pre-installed with the OS unlike plex that came with its own service file or Jackett that I had to create the service file manually. Sshd is a program like any other that gets started by systemd. I appreciate the clarification!
It basically means that systemd allows you to make a call to SYSTEM() using a specific command to wake the PC from hibernation, that way you can install updates in your script and then issue your sleep or shutdown command.
Unless I’m missing something
this can be useful, but hopefully it never becomes a default, it was enough of a pain when Windows was thinking that updates are more important than keeping the hibernated programs
Luckily we can decide what the system is supposed to do.
Though you still have to suspend by yourself when you’re done.
Does
ExecPost=systemctl suspend
work ?
Probably.
But what if the timer triggered during normal operation? Then your computer would suddenly suspend on its own and you wouldn’t know why.
I’ve already made a feature request to only run when the system is suspended.
Until then I’ll look at when the system woke up and if that was less than a minute ago turn off the display and suspend after everything is done.
Doing God’s work …
Can’t you just suspend with another timer that calls
Unit=suspend.target
?Yes, do that a minute after everything else started but run the services themselves with
systemd-inhibit
(another nice thing I didn’t know exists) so that it only goes back to sleep when the last service is done.