What is the "proper" way to view all of the startup programs and services?
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
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.
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?
Edit: This is a much simplified GUI startup (not boot or system services) application manager
gnome-startup-applications
The Startup Applications Preferences app allows configuring applications to run automatically when logging in to your desktop.
This app complies with the FreeDesktop.org Desktop Application Autostart Specification so it will work even if your chosen desktop is not GNOME.
*to enable and disable system or other services on startup, you'll have to familiarize yourself with the systemctl command
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 is systemctl, and the second is journalctl. 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.
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