I’d like to disable some services that might decrease my gaming performance while a game is running. Stuff like search indexing, automatic updates, filesystem tasks.
Has anyone done something in that direction?
My spontaneous idea was to use gamemode to switch to a systemd target that disables those services. Although I’m not sure if systemd targets actually can disable services or if they can only start them. Might also be a little overengineered.
If I don’t get a better idea I will just run a start and stop script with gamemode to handle all that. Although I’m not sure if that would be able to stop system services. Will cross that bridge when I get there.
Edit: While I can automatically stop services by starting a target they aren’t started again after stopping the target. I guess I will just use some simple start-gaming and stop-gaming scripts.
As far as base services go Linux doesn’t really have that many that would be resource hogs.
For giving CPU preference to your game you can use
nice
. For keeping pages of memory from being invalidated you could maybe usemlock
but I have no experience with that tool. Unnecessary use of the GPU would probably be the biggest drag. For your distro or desktop environment you should see if it has a “game mode” or any settings you can toggle that normally use the GPU.I don’t think we have any of those things Linux, that’s why we’re there. Except file indexing, but I only know of Baloo which is annoying if you’re on KDE. But i can be easily turned off
Automatic updates are absolutely a thing on some distros, but you can change the schedule to be outside your gaming time.
outside your gaming time.
I know all those words, but they don’t make sense in that order
I have made a service for automatic updates and deduplication myself. And if someone uses their gaming rig for something like database programming they could use this to start and stop a heavy database as well.
Linux is as light or heavy as you want it to be.
I think if you switch back to the original target that depends on those services they should start again?
Like
systemctl isolate yourtarget.target
and then asystemctl isolate graphical.target
to return to normal operationIsolate will stop any services that aren’t required by the dependency chain.
Some of these might be user services though, in which case you’d need to create a user target
It’s possible that you don’t need to use isolate though, and can just start a target that conflicts and then instead of stopping it, start graphical.target
Yes, you’re right!
In my case starting timers.target stops my gaming.target and restarts all the timers gaming.target had stopped.
Edit: I don’t want to use isolate because I’d rather blacklist the services I don’t want.
Sorry for the series of edits. Yeah, just starting
timers.target
orgraphical.target
again when you’re done without using isolate seems like a pretty good strategy!