This entry gives bref introduction to setting and managing of autostart program in Linux.
Open launcher, right click on the program you would like to autostart, and choose "Add to startup".
Generally, init process is started after Linux kernel is loaded. It then initializes hardware and drivers, and continues to start other processes according to configuration files. These configurations are usually stored in following directories:
/etc/rc
/etc/rc.d
/etc/rcX.d
where X is 0, 1, 2, 3, 4, 5, 6 or S.
The script files in these directories can be executed to start other programes. For example, appending "xinit" or "startx" to file "/etc/rc.d/rc.local" (the script that is last executed during startup) will cause desktop environment to show.
Take proxy tool XX-Net as example. Suppose its starting script is located in "~/Documents/XX-Net-3.3.1/start". We nned to add XX-Net.desktop under "~/.config/autostart":
[Desktop Entry]
Type=Application
Exec="/home/wy/Documents/XX-Net-3.3.1/start"
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en_IN]=XX-Net
Name=XX-Net
Comment[en_IN]=XX-Net
Comment=XX-Net
The next time when user logs in, the command after "Exec=" will be executed automatically.
When user logs in, bash will first execute global login script made by system administrator, "/etc/profile".
Then search for one of the following files in user's home directory:
/.bash_profile
/.bash_login
/.profile
And run the first one it founds. So it is easy to run certain program during login, by adding commands to the files above.
When user logs out, bash will first execute the personal login script, "~/.bash_logout".
For example, in order to run command "tar" for backing up all ".c" files, append command
tar -cvzf c.source.tgz *.c
to file ~/.bash_logout.
Linux uses a daemon process called crond to regularly check the content of files in /var/spool/cron, then executes the commands in them on the specified time. Users can use command "crontab" to create, modify or remove these files.
For example, create a file called "cronFile" with content "00 9 23 Jan * HappyBirthday", then run command
crontab cronFile
After that, system will run program "HappyBirthday" at 9:00 in every January 23.
Like crond, at runs commands at a certain time, but only once.
Syntax:
at [ -f File ] Time
"File" contains the commands wanted to execute. Users may also input commands directly from keyboard:
$ at 12:00
at> mailto Roger -s ″Have a lunch″ < plan.txt
at> (Ctrl-D)
Job 1 at 2000-11-09 12:00
After that, system will automatically send an email to Roger with title "Have a lunch" and body text from plan.txt, at 12:00 in November 9, 2000.