This article links to various methods to launch scripts or applications automatically when some particular event is taking place, like system startup or shutdown, shell login or logout and so on.
systemd is the default init framework, replacing initscripts. The services which are started by systemd can be found in the subfolders of
/etc/systemd/system/. Services can be enabled using the
systemctl command. For more information about systemd and how to write autostart scripts for it, see at systemd.
Legacy Init Chain
/etc/rc.local.shutdown are where the traditional init framework would read from for user generated startup actions. You can write rc.local as a shell script that will be run every boot under the legacy initscripts framework.
runit is a mature init system which offers process supervision, parallel startup, per-user service trees, granular cgroup manipulation, flexible dependency system, and boot times that don't incur the penalty of dbus. The root-level services are symlinks in
/service with the actual service directories in
/etc/sv. See the Runit page for more information.
/etc/profile is sourced by all Bourne-compatible shells upon login: it sets up an environment upon login and application-specific (
/etc/profile is executed, it sources the following scripts if they exist:
/etc/bash.bashrc(if shell is bash)
STARTUP/SHUTDOWN FILESsection of
- Wikipedia:Unix_shell#Configuration files for shells
X session startup
X Desktop Group
$XDG_CONFIG_DIRS/autostart/: In this folder are
.desktop files. These files determine which programs are loaded for which desktop environment. For an explanation of the desktop file standard refer to Desktop Entry Specification.
GNOME, KDE, Xfce
You can also directly put .desktop files in
KDE also has a specific folder: