如何在linux里面设置程序自动启动?

我在linux下写了一个小脚本放在root目录下,如何设置让他每次启动linux桌面后自动打开shell并执行这段脚本?

只需编辑/etc/init.d/rc.local文件,在最后加上你的脚本即可。
比如:我已经编写了一个脚本shell.sh,存放在/home/mars704/Desktop/ 下面
在终端输入 gedit /etc/init.d/rc.local编辑文件,在结尾出加入:
/home/mars704/Desktop/sh.sh 即可开机自动加载脚本

首先,linux随机启动的服务程序都在/etc/init.d这个文件夹里,里面的文件全部都是脚本文件(脚本程序简单的说就是把要运行的程序写 到一个 文件里让系统能够按顺序执行,类似windows下的autorun.dat文件),另外在/etc这个文件夹里还有诸如名为rc1.d, rc2.d一直到rc6.d的文件夹,这些都是linux不同的runlevel,我们一般进入的X windows多用户的运行级别是第5级,也就是rc5.d,在这个文件夹下的脚本文件就是运行第5级时要随机启动的服务程序。需要注意的是,在每个rc (1-6).d文件夹下的文件其实都是/etc/init.d文件夹下的文件的一个软连接(类似windows中的快捷方式),也就是说,在 /etc/init.d文件夹下是全部的服务程序,而每个rc(1-6).d只链接它自己启动需要的相应的服务程序!
要启动scim(某一 程序),我们首先要知道scim程序在哪里,用locate命令可以找到,scim在/usr/bin/scim这里,其中usr表 示是 属于用户的,bin在linux里表示可以执行的程序。这样,我就可以编写一个脚本程序,把它放到/etc/init.d里,然后在rc5.d里做一个相 应的软链接就可以了。
这个脚本其实很简单,就两行:
#!/bin/bash
/usr/bin/scim
第一行是声明用什么终端运行这个脚本,第二行就是要运行的命令。
还 需要注意的一点是,在rc5.d里,每个链接的名字都是以S或者K开头的,S开头的表示是系统启动是要随机启动的,K开头的是不随机启动的。这 样,你就可以知道,如果我要哪个服务随机启动,就把它名字第一个字母K改成S就可以了,当然,把S改成K后,这个服务就不能随机启动了。因此,我这个链接 还要起名为SXXX,这样系统才能让它随机启动。

在RH下,rc.local是默认启动的最后一个脚本文件,所以,
如果你想要随机启动,还有一种方法就是在rc.local的尾部加入/usr/bin/scim,这样就可以了
温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-02-19

开发板添加语音合成和继电器功能并设置开机自启动。

第2个回答  2014-03-15

写一个XXX.desktop文件放在 /root/.config/autostart/ 目录下,内容大致如下:

[Desktop Entry]
Name=XXX
Exec=/root/XXX.sh
Type=Application

就可以了。


不过用root用户登录系统使用桌面是极不明智的,这通常被称为“root敢死队”,呵呵

第3个回答  2014-04-06
vim /etc/rc.d/rc.local
增加一行
/root/你的shell文件
rc.local文件时linux专门给用户设置程序自动启动的文件
你可以搜索rc.local本回答被网友采纳
第4个回答  2014-03-15
echo "/root/aaa.sh" >> /etc/rc.local 即可
把aaa.sh换成你的脚本名称 脚本必须要有可执行权限 加执行权限 chmod +x /root/aaa.sh
相似回答