1. linux怎么让程序开机自动启动
1. 开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在
/etc/rc或
/etc/rc.d 或
/etc/rc?.d
目录下的脚本文件,可以使init自动启动其它程序。例如:编辑/etc/rc.d/rc.local 文件(该文件通常是系统最后启动的脚本),在文件最末加上一行“xinit”或“startx”,可以在开机启动后直接进入X-Window。
2. 登录时自动运行程序
用户登录时,bash先自动执行系统管理员建立的全局登录script :
/ect/profile
然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:
/.bash_profile、
/.bash_login、
/.profile,
但只执行最先找到的一个。因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
2. 设置linux设置开机自启动应用程序
1.新建文件:
2.新建文件:
输入以下内容:
3.加权限
4.允许开机自启
5.手动启动服务
6.检查服务状态
7.查看日志
3. linux开机自动执行命令和脚本 自动启动 自启 进程一直运行
原文及更新: https://neucrack.com/p/91
直接在/etc/rc.local(/etc/rc.d/rc.local)文件中添加即可
上面这脚本实际上在使用时出现了问题, /home/neucrack/software/ss/start_ss_local.sh 这个命令始终没有被执行,原因是 /home/neucrack/software/ss/start_kcptun_client.sh 中的命令阻塞了进程,导致后面一句始终没有执行,可以将他们分别放到后台执行就行了,如何在后台执行可以看文章最后一部分
也可以自己手动在rc*.d中建立软连接
桌面系统搜索 启动 ,打开启动管理器 添加删除即可
一般有以下几种方法:
1)在输入命令的最前面加上 nohup 命令
如 nohup your_command & 这样命令在你退出后仍然会在后台执行
2) setsid 命令
setsid your_command 该命令的结果是使你所运行的命令的父进程为init,所以只有关机该进程才会停止
3) (your_command &)
就是用括号将你的命令括起来,这样做也是使命令的父进程为init
4) disown
当你在命令行下输入 your_command & 后命令就在后台执行了,然后执行jobs命令,该命令会列出当前正在后台执行的命令。例如输入命令“top&”
然后执行"jobs"
输出结果是
[1] + Suspended (tty output) top
注意行开头方括号内的数字,该数字叫做jobspec,是给当前后台运行的job的编号。这是你只要在命令行下输入"disown -h 1" 后台运行的top命令就不会受到hangup信号的影响了。
5)使用 screen 命令
在命令行下输入screen命令就开启了一个screen进程,它就好像是一个全新的命令运行环境,在该环境中你可以像在正常的terminal下那样执行
命令,但是这个screen是不受其父进程的hangup信号的影响的,既然screen不受其父进程影响,当你意外掉线或者退出系统时,在screen
中仍在执行的命令仍然会继续执行。关于screen命令的使用方法你可以再去查阅相关资料。
4. Linux安装后,需保留哪些自启动服务
和Windows系统一样,Linux服务器运行过程中也会一些没用的软件服务默认运行,这些占用了很多系统资源,也会有安全隐患,所以一般是建议关闭的。那么,工作中Linux主机到底需要有哪些开机自启动服务呢?
新装Linux系统之后,有必要保留的开机自启动服务有5个:
Ø sshd:远程连接Linux服务器时要用到,所以必须开启,不然就无法提供远程连接服务了。
Ø rsyslog:日志相关软件,这是操作系统提供的一种机制,系统的守护程序通常会使用rsyslog程序将各种信息写到各个系统日志文件中。
Ø network:系统启动时,如果想激活或关闭各个网络接口的话,可以考虑开启。
Ø crond:用于周期性的执行系统及用户配置的任务计划。有需要时开启。几乎是运维工作中必须要用的一个软件。
Ø sysstat:sysstat是一个软件包,是包含监测系统性能及效率的一组工具,这些工具对于收集系统性能数据很有帮助,比如CPU使用率、硬盘和网络吞吐数据等,对这些数据的收集和分析,有利于判断系统运行是否正常。
sysstat软件包集成的主要工具为:
Ø iostat工具提供CPU使用率及硬盘吞吐效率的数据。
Ø mpstat工具提供与单个或多个处理器相关的数据。
Ø sar工具负责收集、报告并存储系统活跃的信息。
上述5个服务是安装完系统后建议保留的开机自启动服务,也是一切生产服务器必须保留的开机自启动服务。将来还可以根据服务器的业务使用场景调整相应的自启动服务。
5. 如何在Linux桌面环境下自动启动程序
我在本教程中将介绍如何在各种Linux桌面环境下,自动启动某个程序。
GNOME桌面环境
在终端中运行这个命令,启动"Startup
Applications
Preferences"(启动应用程序首选项)GUI。
$
gnome-session-properties
点击"Add"(添加)按钮,即可配置一个新的启动应用程序。分别往"Name"(名称)栏和"Command"(命令)栏里面键入该应用程序的名称和该应用程序的CLI命令。往"Comment"(注释)栏里面键入可选的描述。
Unity桌面环境
在Unity
Dash中键入"startup"(启动)。一旦"Startup
Application"(启动应用程序)图标出现,就点击该图标。
一旦"Startup
Applications
Preferences"(启动应用程序首选项)窗口打开,输入"Name"(名称)、"Command"(命令)和"Comment"(注释),即可配置自动启动的某个程序。
KDE桌面环境
首先,打开"System
Settings"(系统设置)窗口。你会在System
Administration(系统管理)下面找到"Startup
and
Shutdown"(启动和关闭)图标。点击该图标。
系统会要求你从一系列已知的应用程序中选择自动启动的某个应用程序。如果你的程序没有列出来,在上面空白区输入该应用程序的名称。如果该程序(比如CLI命令)将在终端中运行,就要选中"Run
in
terminal"(终端中运行)复选框。点击"OK"(确定)按钮。
下一步,系统要求你输入该应用程序的详细信息,包括名称、命令和描述。
之后,你会看到该程序已完成配置,可自动运行。想配置额外的启动程序/脚本,你可以点击右边侧边栏中的"Add
Program"(添加程序)按钮或"Add
Script"(添加脚本)按钮。
MATE桌面环境
在MATE桌面上,依次进入到"Applications"(应用程序)->
"Preferences(首选项)->
"Startup
Applications"(启动应用程序)。
你会看到"Startup
Applications
Preferences"(启动应用程序首选项)窗口。点击"Add"(添加)按钮。
输入启动应用程序的详细信息:"Name"(名称)、"Command"(命令)和"Comment"(注释)。
Xfce桌面环境
从Xfce桌面菜单中选择"Settings
Manager"(设置管理器)。在"Settings"(设置)窗口中,点击"Session
and
Startup"(会话和启动)图标。
在"Application
Autostart"(应用程序自动启动)选项卡下,点击底部的"Add"(添加)按钮。
输入自动启动的某个程序的详细信息:"Name"(名称)、"Command"(命令)和"Description"(描述)。
LXDE桌面环境
想在LXDE桌面环境下配置启动应用程序,只需在终端中运行下面几个命令。
$
mkdir
-p
~/.config/lxsession/Lubuntu/
$
touch
~/.config/lxsession/Lubuntu/autostart
$
leafpad
autostart
然后,把下面这一项添加到已创建的自动启动文件中:
@conky
这里,"conky"是登录后,我想自动运行的那个CLI命令的名称。
保存并关闭。
6. linux设开机自启动服务
linux设开机自启动服务
1.
把启动命令放到/etc/rc.local中,
编辑:/etc/rc.local文件
如下:可以添加直接服务启动,也可以添加SHELL脚本
bash
/etc/init.d/webstart
start
bash
/etc/init.d/redis
以上运行的程序都是以root权限来执行的。如果某些程序要以某个用户的身份去运行,那么可以这样:
su
show
-c
/home/show/server/tomcat/bin/startup.sh
2.
chkconfig命令
[root@localhost
~]#
chkconfig
--list
显示开机可以自动启动的服务
[root@localhost
~]#
chkconfig
--add
***
添加开机自动启动***服务
[root@localhost
~]#
chkconfig
--del
***
删除开机自动启动***服务
7. linux设置开机自启动
linux设置开机自启动执行命令 :
执行命令 : 编辑"/etc/rc.local",添加你想开机运行的命令
运行程序脚本 :然后在文件最后一行添加要执行程序的全路径。
例如,每次开机时要执行一个hello.sh,这个脚本放在/usr下面,那就可以在"/etc/rc.local"中加一行"/usr/./hello.sh",或者" cd /opt && ./hello.sh "
注意,你的命令应该添加在:exit 0 之前
linux在“/etc/rc.d/init.d”下有很多的文件,每个文件都是可以看到内容的,其实都是一些shell脚本或者可执行二进制文件 Linux开机的时候,会加载运行/etc/init.d目录下的程序,因此我们可以把想要自动运行的脚本放到这个目录下即可。系统服务的启动就是通过这种方式实现的。
简单的说,运行级就是操作系统当前正在运行的功能级别。
例:在Ubuntu/den里,可以使用update-rc.d命令来把示例脚本:/etc/init.d/proxy安装到各个runlevel中。
update-rc.d后面有三个参数,分别是/etc/init.d下的脚本名字,默认安装方式,运行的优先级。优先级的数字越大,表示越迟运行,这里我们把自己写的服务放在最后运行。
如果要卸载随机启动的服务,执行
在update-rc.d安装的时候提示了警告信息,是因为我们写的/etc/init.d/proxy太简陋了,只包含了我们想要的命令,连LSB的信息也没有提供。
只需要对自启动脚本做一些小改动,就可以避免那个警告了。如下:
到此,一个最简单的随机启动服务写好了,看起来文章挺长的,但其实也就几个命令而已。 在下次开机启动的时候,proxy.py就会以root用户身份被自动运行。
在/etc/init.d下新建示例脚本文件(startTest.sh),该脚本会启动/opt/test.sh。内容如下:
写了脚本文件之后事情还没有完,继续完成以下几个步骤:
8. 如何在Linux中设置服务自启动
有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务
主要用三种方式进行这一操作:
ln -s 在/etc/rc.d/rc*.d目录中建立/etc/init.d/服务的软链接(*代表0~6七个运行级别之一)
chkonfig 命令行运行级别设置
ntsysv 伪图形运行级别设置
注意:1.这三种方式主要用于以redhat为基础的发行版
2.如果还不知道运行级别是什么,那么最好先看看相关资料再实验
第一种方式:ln -s 建立启动软连接
在Linux中有7种运行级别(可在/etc/inittab文件设置),每种运行级别分别对应着/etc/rc.d/rc[0~6].d这7个目录
Tips:/etc/rc[0~6].d其实是/etc/rc.d/rc[0~6].d的软连接,主要是为了保持和Unix的兼容性才做此策
这7个目录中,每个目录分别存放着对应运行级别加载时需要关闭或启动的服务
由详细信息可以知道,其实每个脚本文件都对应着/etc/init.d/目录下具体的服务
K开头的脚本文件代表运行级别加载时需要关闭的,S开头的代表需要执行
因此,当我们需要开机启动自己的脚本时,只需要将可执行脚本丢在/etc/init.d目录下,然后在/etc/rc.d/rc*.d中建立软链接即可
[root@localhost ~]# ln -s /etc/init.d/sshd /etc/rc.d/rc3.d/S100ssh
此处sshd是具体服务的脚本文件,S100ssh是其软链接,S开头代表加载时自启动
如果需要在多个运行级别下设置自启动,则需建立多个软链接
这种方式比较繁琐,适用于自定义的服务脚本
如果系统中已经存在某些服务(比如安装apache时就会有httpd服务项),可以使用下面的两种方式
第二种方式:chkconfig
如果需要自启动某些服务,只需使用chkconfig 服务名 on即可,若想关闭,将on改为off
在默认情况下,chkconfig会自启动2345这四个级别,如果想自定义可以加上--level选项
上面我们先将sshd服务的所有启动级别关闭,然后使用--level选项启动自定义级别
Tips:--list选项可查看指定服务的启动状态,chkconfig不带任何选项则查看所有服务状态
第三种方式:ntsysv 伪图形
ntsysv和chkconfig其实是一样的,只不过加上了图形而已
启动ntsysv有两种方式,一是直接在命令行中输入ntsysv,二是使用setup命令,然后选择系统服务
默认情况下,当前运行级别为多少,在ntsysv中设置的启动服务的级别便是多少
比如,我当前的运行级别是3,那么我在伪图形界面中选择启动服务后,它的运行级别也会是3
如果想自定义运行级别可使用ntsysv --level方式
以上三种操作需要保证服务脚本文件可执行,并且要有root权限
其中,第一种方式多用于自定义脚本,第二、三种多用于系统已存在的服务
比如ftp、samba、ssh、httpd等等
并且,要做相关设置需要弄清楚运行级别的问题