linux设置程序开机自启

linux设置程序开机自启

原文地址
https://blog.csdn.net/huhao8278/article/details/110222710
https://www.linuxprobe.com/automatic-running-methods.html

ubuntu系统设置程序开机自启

由于项目工程的需要(例如服务器上的程序)会要求开机自启,本人目前涉及到的开机自启分为:带界面的开机自启(即程序运行有界面)、无界面的开机自启。该文档介绍ubuntu16.04系统下有界面和无界面的开机自启方法,且这些方法都已在项目上应用,如有错误,望大家指正。

1、无界面的开机自启

使用ubuntu自带的启动软件 – “Startup Applications”
注意:该方法设置完成后系统需进入桌面,程序才能自启
(1)首先需要创建一个启动程序的shell脚本 app_build.sh 文件
app_build.sh文件内容可如下:

 

 最后进行开机自启验证

2,使用ubuntu系统方法开机自启
注意:该方法设置完成后系统开启程序即自启

(1)如上,一样需要创建app_build.sh脚本文件
(2)创建app.start.service文件,文件内容如下:

(3)将app.start.service文件拷贝到 /lib/systemd/system 路径下:

$ cp app.start.service /lib/systemd/system

(4)进行开机启动配置

sudo systemctl enable app.start.service
sudo systemctl daemon-reload

(5) 开机自启进行验证
(6) 其他命令:
重启app.start.service命令:

sudo systemctl start app.start.service

查看启动状态:

$ journalctl -xb
或者 $ sudo systemctl status app.start.service

3、带界面的开机自启

1、创建文件 ExceptionSys.desktop:
2、编辑内容:

3、终端输入命令:

$ cp ExceptionSys.desktop /usr/share/applications/
$ cp ExceptionSys.desktop $HOME/.config/autostart/

4、开机自启验证

ubuntu和centos都可以使用的设置开机自启的方式

方法 1 – 使用 rc.local

这种方法会利用 /etc/ 中的 rc.local 文件来在启动时执行脚本与命令。我们在文件中加上一行来执行脚本,这样每次启动系统时,都会执行该脚本。

不过我们首先需要为 /etc/rc.local 添加执行权限,
$ sudo chmod +x /etc/rc.local

然后将要执行的脚本加入其中:
$ sudo vi /etc/rc.local

在文件最后加上:
sh /root/script.sh &
然后保存文件并退出。
使用 rc.local 文件来执行命令也是一样的,但是一定要记得填写命令的完整路径。 想知道命令的完整路径可以运行:
$ which command
比如:
$ which shutter
/usr/bin/shutter

如果是 CentOS,我们修改的是文件 /etc/rc.d/rc.local 而不是 /etc/rc.local。 不过我们也需要先为该文件添加可执行权限。

注意:启动时执行的脚本,请一定保证是以 exit 0 结尾的。

看到这里有些盆友就要问了,为什么要在执行命令后面加 &

在shell执行命令后加&是为了让应用程序在后台运行,rc.local也是一个脚本,主进程在运行这个脚本时必须能够返回,如果在这个脚本里面执行了一些死循环或者其他无法返回的任务,整个系统就很可能卡死在这里,无法启动,所以在这里运行的用户程序必须是能够返回或者本身就使用一些后台运行的进程。

方法 2 – 使用 Crontab

该方法最简单了。我们创建一个 cron 任务,这个任务在系统启动后等待 90 秒,然后执行命令和脚本。

要创建 cron 任务,打开终端并执行
$ crontab -e

然后输入下行内容:
@reboot ( sleep 90 ; sh locationscript.sh )

这里 locationscript.sh 就是待执行脚本的地址。

方法3 - 使用 chkconfig

原文地址:https://www.cnblogs.com/111testing/p/6039097.html