I know the above question isn’t fully complete and lacks some important information, I will (hopefully) provide that below, but first I want to explain where I am coming from with this question a little.
I would consider myself a power user in Windows (maybe even more than that). At one point I was even studying for my Microsoft Certified System Administrator (MCSA 70-270), worked in IT dealing with complex virus removal (anyone remember Combofix and Bleeping Computer?) and generally am comfortable bending anything up to about Windows 10 to my will.
I also have some experience programming in .Net, Java, Python, and Arduino’s version of C++ (FWTW).
I have been trying to force myself to use Linux as my primary for a little while now. I ran Mint as my primary OS for a little over a year, and have recently switched to Manjaro to try Wayland and “increase the difficulty level” as it were.
The problem that motivated this post is that I recently installed an application via the AUR by cloning and making the package. Annoyingly though, the application is configured to run at startup and I don’t see an obvious setting in the application to turn that behavior off.
I know I can “Google” how to figure out this particular problem, but it seems like a good opportunity for me to metaphorically learn how to fish rather than being given a fish by learning the Linux equivalent of what I would do in Windows for this kind of thing.
If I had this issue in Windows I would approach the issue in the following manner:
- Depending on flavor of Windows do one of the following and check the autostart tab
- Run MSConfig
- Run Task Manager
- Check the Startup folder for my User and All Users
- Pull out the “I’m done messing around tools”
I understand, and know the various locations and registry entries the applications from step 3 are looking at, it’s just usually faster to use them than go digging into those locations individually.
My question therefore is, what is the Linux equivalent of the methodology I would use when in Windows? Is, or are there, specific tools for looking at startup programs and services? Is it as simple as digging into Systemd? Am I approaching this with the completely wrong mindset?
Essentially, what am I ignorant of, and can I that ignorance be rectified using my existing knowledge as a framing device?
Regardless of anything else, I very much appreciate your taking the time to read all of this and thank you in advance if you do have the time and knowledge to spare answering this question.
Cheers!
systemd-analyze blame
And
systemd-analyze critical-chain
Knowing what AUR pkg would help, but here is where I would look.
Systemctrl disable tab tab to get a list of what is enabled to start at boot for services and such. Disable what you don’t want.
I use gnome, so I’d check ~/.config/autostart if it’s an application that’s starting when I login.
I would say not enough info, because on Linux there’s not one particular way to do “startup applications”. It could be a service managed by your service manager (systemd in Manjaro’s case), but unlikely if this is a graphical application you’re talking about. It could be started by your
~/.bash_profile
(or zsh equivalent). It could be started by your DE or Wayland compositor. If this is a graphical application (i.e. an actual window pops up when you log in) I’m guessing maybe~/.bash_profile
, since how would this AUR package know to add itself to startup programs in your DE or compositor or WM when there are so many options this could be?What AUR package did you install?
Either by checking $HOME/.bash_profile or the wm’s config file (which is very likely to be at $HOME/.config).
t. I only do minimal installs.
As Linux is a multi-user system, stuff you install can either run a system process, or a user process. Most other comments are assuming you installed a process that’s running as a user. On Arch, this could either be an autostart process (which is desktop agnostic) or something attached to Gnome or KDE’s startup.
On Arch,
systemd
controls system services. There are two key CLI commands for working with systemd (and some GUIs, but you’ll have to find those). The first issystemctl
, and the second isjournalctl
. The second gets you logs. The first controls services.systemctl status
will give you an overview of all the services on your system.sudo systemctl stop <service name>
will temporarily stop a service;start ...
starts it again.disable ...
will stop it from starting when you reboot – this does not stop the service, it only prevents it from being started again in reboot. As you’ve guessed,enable ...
re-enables the service.status ...
gives you a status for the process, and the last few lines of the log for it.systemd
services can also be run at the user level; the commands are all the same, but you add--user
every time to control the user services.journalctl -xe
gives you a system log since boot. You can also look at logs for previous boots, look at logs only for a single process (-u <servicename>
), look at user processes (same--user
argument), tail a log to watch new messages roll in (--tail
) and a bunch of other stuff.Systemd also controls scheduled jobs (that used to be handled by cron) with timers. Really, most Linux distros these days should be known as systemd/Linux.
I suspect what you’re looking for is
sudo systemd disable <service>
, but if it’s a user processes, check~/.config/autostart
and your desktop config tool section for auto-start settings.It will help if you can say which desktop you’re using (Gnome? KDE? LXDE? Or just a window manager?) and what the package is. If you give the package name, we can explain exactly how to disable it. Otherwise, you have the hodge-podge of answers below.
Remember that on Linux everything is a file
Systemctl status > somefile.txt and examine that file, or systemctl status | more
Also, on Windows: services.msc and sort by ‘startup type’ also check the registry HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run and the various other versions of that, HKCU, and WOW6432Node, etc