十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
用户想要在linux开机的时候自启动相关的程序。那我们要怎么设置呢?下面由我为大家整理了linux下开机自启动命令的相关知识,希望对大家有所帮助!
创新互联公司专注于清河企业网站建设,成都响应式网站建设公司,商城建设。清河网站建设公司,为清河等地区提供建站服务。全流程定制网站建设,专业设计,全程项目跟踪,创新互联公司专业和态度为您提供的服务
linux下开机自启动命令
1.开机启动时自动运行程序
Linux加载后, 它将初始化硬件和设备驱动, 然后运行第一个进程init。init根据配置文件继续引导过程,启动其它进程。通常情况下,修改放置在 /etc/rc或 /etc/rc.d 或 /etc/rc?.d 目录下的脚本文件,可以使init自动启动其它程序。
例如:编辑 /etc/rc.d/rc.local 文件,在文件最末加上一行"xinit"或"startx",可以在开机启动后直接进入X-Window。
扩展:其他情况下linux自启动程序命令
2.登录时自动运行程序
用户登录时,bash首先自动执行系统管理员建立的全局登录script :/etc/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、 /.profile,但只执行最先找到的一个。
因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令"tar -cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份 *.c 文件。
4.定期自动运行程序
linux有一个称为crond的守护程序,主要功能是周期性地检查 /var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab 命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为"00 9 23 Jan * HappyBirthday",运行"crontab cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。 (/etc/crontab中配置命令即可)也可以
5.定时自动运行程序一次
定时执行命令at 与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time ,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:
6.创建开机自启动脚本
1) 将你的启动脚本复制到 /etc/init.d目录下
以下假设你的脚本文件名为 test。
2) 设置脚本文件的权限
$ sudo chmod 755 /etc/init.d/test
3) 执行如下命令将脚本放到启动脚本中去:
$ cd /etc/init.d
$ sudo update-rc.d test defaults 95
注:其中数字95是脚本启动的顺序号,按照自己的需要相应修改即可。在你有多个启动脚本,而它们之间又有先后启动的依赖关系时你就知道这个数字的具体作用了。该命令的输出信息参考如下:
update-rc.d: warning: /etc/init.d/test missing LSB informationupdate-rc.d: see
卸载启动脚本的方法:
$ cd /etc/init.d
$ sudo update-rc.d -f test remove
命令输出的信息参考如下:
Removing any system startup links for /etc/init.d/test … /etc/rc0.d/K95test /etc/rc1.d/K95test /etc/rc2.d/S95test /etc/rc3.d/S95test /etc/rc4.d/S95test /etc/rc5.d/S95test /etc/rc6.d/K95test
留此备查。
screen命令类似于“虚拟桌面”的概念,可以启动一个Linux下的虚拟桌面,在其中可以和普通终端一样执行各种命令。
如果系统中没有screen命令,可以用 apt install screen 来进行安装。
screen命令的基本用法有:
screen 启动一个虚拟桌面
在启动后的虚拟桌面中,按Ctrl+a 然后d(注意这个过程中Ctrl一直按住,也就相当于Ctrl+a 然后Ctrl+d),可以从虚拟桌面返回之前的终端,此时如果虚拟桌面中还有命令或进程在执行,将继续执行,即使退出了这个终端也仍将继续执行。这样就实现了后台执行命令或服务。
如果再想要查看这个虚拟桌面中的情况,执行screen -r即可。
如果有多个screen虚拟桌面在执行中,可以用screen -ls列出所有的桌面,然后按照桌面开始的序号(例如是1234),执行screen -r 1234或screen -x 1234就可以进入该桌面查看,然后再用Ctrl+a,d命令组合退出桌面。
如果要真正退出虚拟桌面(结束该桌面及其中正在运行的进程),在桌面中用exit命令退出即可。
如果要给启动的虚拟桌面起一个名字,可以用类似 screen -S test 这样的命令,这将启动一个名为test的虚拟桌面,以后可以用screen -x test命令来进入查看。
如果想要一条命令用screen启动一个后台进程并且退出(保持后台运行,类似于服务进程),可以用类似下面的命令:
screen -dmS test top
这将启动一个 名为 test 的虚拟桌面,然后在其中执行top命令,然后退出该桌面。
这样,我们再结合Linux中的启动执行方法,就可以制作自己的服务进程了。
下面设置自启动脚本的方法启动仅供参考:
方法一:使用crontab
方法二:
很多时候需要Ubuntu在开机的时候执行一些指定的命令,这里对操作方法进行记录。
在 /etc/init.d/ 中创建自己的开机运行脚本
# 这里的文件名 mystart 可以修改为任何你喜欢的名称,但是必须放在/etc/init.d/目录中
cd /etc/init.d
sudo vim /etc/init.d/mystart.sh
写入需要执行的命令,
#!/bin/bash
### BEGIN INIT INFO
# Provides: tuzixini
# Required-Start: $local_fs $network
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: self define auto start
# Description: self define auto start
### END INIT INFO
# 上面的部分也必须写上,后面放上你需要开机执行的命令,这里是挂载一个硬盘
sudo mount /dev/sdb1 /opt/disk
修改脚本文件权限(将命令中的mystart.sh替换成实际的脚本文件名称)
sudo chmod 755 /etc/init.d/mystart.sh
加入开机启动(将命令中的mystart.sh替换成实际的脚本文件名称)
sudo update-rc.d mystart.sh defaults 90
ok,完成,后面系统启动的时候就会自动运行这段命令。
下面是另一段参考:
第一步、先建立screen name
shellscreen -dmS test
第二步、发送要执行的命令
shellscreen -r test -p 0 -X stuff "top"
第三步、发送一个回车符,让top命令运行起来
shellscreen -r test -p 0 -X stuff $'\n'
参数说明:
-r 恢复/进入一个screen
-p 0 指定第一个(从0开始)window,一个screen里可以有几个window,这里只需要指定第一个,不然会在某些情况下不生效。
-X 执行一个指定的screen支持的command
stuff 是-X的第一个参数,也是screen支持的一个command,意思是粘贴一个string
"top" 是粘贴的string 内容
$'\n' 是粘贴一个回车符进去,以此来执行screen里面的top命令
方法一:
一、赋予脚本可执行权限(/opt/script/autostart.sh是你的脚本路径)
二、打开/etc/rc.d/rc/local文件,在末尾增加如下内容。
三、在centos7中,/etc/rc.d/rc.local的权限被降低了,所以需要执行如下命令赋予其可执行权限。
方法二:
一、将脚本移动到/etc/rc.d/init.d目录下。
二、增加脚本的可执行权限。
三、添加脚本到开机自动启动项目中。
LINUX里的添加启动项的方法和WINDOWS不一样
使用chkconfig命令可以查看在不同启动级别下课自动启动的服务(或是程序),命令格式如下:
chkconfig
--list
可能输出如下:
openvpn 0:关闭 1:开启 ...... 6:关闭 (0-6 为启动级别 ;
关闭/开启为相应级别下该服务的自动启动选项)
如果希望对自动启动选项做出改变,命令格式为:
chkconfig --level x name
on/off
z.B. chkconfig --level 5 openvpn
off
以上的命令可以查询系统可提供的服务,如果希望开机时启动某一程序,可采用以下方法:
在~/.bash_profile文件最后一行添加所希望启动的软件名。如:“synergyc
192.168.0.154”
则在开机时自动运行synergyc并与192.168.0.154连接。
以上内容为我个人配置,但是发现了一个问题:FC12在登陆后才完成系统启动,也就是说在进入用户登陆界面的时候synergyc还未能启动。所以,(也许)synergyc不适合被安装在用作无键鼠客户机的linux系统中。
在Red
Hat 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
:/etc/profile。然后bash在用户起始目录下按顺序查找三个特殊文件中的一个:/.bash_profile、/.bash_login、
/.profile,但只执行最先找到的一个。
因此,只需根据实际需要在上述文件中加入命令就可以实现用户登录时自动运行某些程序(类似于DOS下的Autoexec.bat)。
3.退出登录时自动运行程序
退出登录时,bash自动执行个人的退出登录脚本/.bash_logout。例如,在/.bash_logout中加入命令"tar
-cvzf c.source.tgz *.c",则在每次退出登录时自动执行 "tar" 命令备份 *.c
文件。
4.定期自动运行程序
Linux有一个称为crond的守护程序,主要功能是周期性地检查
/var/spool/cron目录下的一组命令文件的内容,并在设定的时间执行这些文件中的命令。用户可以通过crontab
命令来建立、修改、删除这些命令文件。
例如,建立文件crondFile,内容为"00 9 23 Jan *
HappyBirthday",运行"crontab
cronFile"命令后,每当元月23日上午9:00系统自动执行"HappyBirthday"的程序("*"表示不管当天是星期几)。
5.定时自动运行程序一次
定时执行命令at
与crond 类似(但它只执行一次):命令在给定的时间执行,但不自动重复。at命令的一般格式为:at [ -f file ] time
,在指定的时间执行file文件中所给出的所有命令。也可直接从键盘输入命令:
代码如下:
$ at 12:00
atmailto Roger -s ″Have a
lunch″ plan.txt
atCtr-D
Job 1 at 2000-11-09 12:00
2000-11-09
12:00时候自动发一标题为"Have a
lunch",内容为plan.txt文件内容的邮件给Roger。
#!/bin/bash
RESTART="........"
#里面写相应服务代码
START="......."
STOP=".........."
case "$1"
in
restart)
$RESTART
echo "......"
;;
start)
$START
echo
"......"
;;
STOP)
$STOP
echo "......"
;;
*)
echo "Usage: $0
{restart ¦ start ¦ stop}"
exit 1
esac
exit 1
脚本写完要修改一下权限
chmod u+x
test.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,这样系统才能让它随机启动
添加自启动脚本
首先把自己的脚本放到/etc/init.d中,,然后执行如下指令:
update-rc.d
a start 90 2 3 4 5 . stop 90 0 1 6 .
其中a就是你的脚本,注意有两个点。
a脚本范例。
代码如下:
#!/bin/sh
# Source function
library.
if [ -f /etc/init.d/functions ]; then
.
/etc/init.d/functions
else
.
/lib/lsb/init-functions
fi
MOD=/a.ko
start()
{
echo -n $"insert a
kernel module: "
/sbin/insmod $MOD
echo
}
stop()
{
echo -n
$"remove a kernel module: "
/sbin/rmmod a -f
echo
}
[ -f $MOD ] ||
exit 0
# See how we were called.
case "$1"
in
start)
start
;;
stop)
stop
;;
restart|reload)
stop
start
;;
*)
echo
$"Usage: $0
{start|stop|restart|reload}"
update-rc.d命令,是用来自动的升级System
V类型初始化脚本,简单的讲就是,哪些东西是你想要系统在引导初始化的时候运行的,哪些是希望在关机或重启时停止的,可以用它来帮你设置。这些脚本的连接位于/etc/rcn.d/LnName,对应脚本位于/etc/init.d/Script-name.
1、设置指定启动顺序、指定运行级别的启动项:
update-rc.d
<service> start <order> <runlevels>
2、设置在指定运行级中,按指定顺序停止:
update-rc.d
<service> stop <order> <runlevels>
3、从所有的运行级别中删除指定的启动项:
update-rc.d -f
<script-name> remove
例如:
update-rc.d script-name start 90 1 2 3 4 5 . stop
52 0 6 .
start 90 1 2 3 4 5 . :
表示在1、2、3、4、5这五个运行级别中,按先后顺序,由小到大,第90个开始运行这个脚本。
stop 52 0 6 .
:表示在0、6这两个运行级别中,按照先后顺序,由小到大,第52个停止这个脚本的运行。
如果在 /etc/init.d 中加入一个
script,还须要制作相关的 link
在 /etc/rc*.d 中。K 开头是 kill , S 开头是 start ,
数字顺序代表启动的顺序。(SysV)
update-rc.d 可以帮你的忙。
例:
在 /etc/init.d 中建立一个叫作 zope 的
script , 然后
update-rc.d zope defaults
就会产生以下链结::
代码如下:
Adding system startup for /etc/init.d/zope
...
/etc/rc0.d/K20zope - ../init.d/zope
/etc/rc1.d/K20zope -
../init.d/zope
/etc/rc6.d/K20zope - ../init.d/zope
/etc/rc2.d/S20zope
- ../init.d/zope
/etc/rc3.d/S20zope -
../init.d/zope
/etc/rc4.d/S20zope - ../init.d/zope
/etc/rc5.d/S20zope
- ../init.d/zope
其他进阶使用方式请 man update-rc.d
1、linux开启mysql命令。
2、启动MySQL的命令。
3、linux启动mysql。
4、linux中如何启动mysql。
1."linux启动mysql的命令,为您提供linux启动mysql的命令图文信息,打开linux系统,在linux的桌面的空白处右击。
2.在弹出的下拉选项里,点击打开终端。
3.在启动之前需要修改mysql的配置文件。
4.修改之后可以使用servicemysqldstart命令来启动mysql服务。
5.可以使用命令ps-ef|grepmysqld来查看有没有启动成功。
方法1:.利用ntsysv命令进行设置,利用root登陆
终端命令下输入ntsysv 回车;如下图
在这个界面上进行操作即可,简要的操作说明:
括号中(*)代表默认开机启动,否则不会在开机的时候启动;
按钮功能:
上下键:可以在各个服务之间移动
空格键:设置启动还是不启动,*进行设置即可
Tab键:在方框、ok、cancle之间进行切换
F1键:进行帮助文档,如下图:
方法2:利用命令行chkconfig命令进行设置
简要说明一下chkconfig 命令的使用方法
Chkconfig
--list:将目前的各项服务状态栏显示出来
--level:设置某个服务在该LEVEL下启动或者关闭
单独查看某一服务是否开机启动的命令 :chkconfig --list 服务名
单独开启某一服务的命令 ;chkconfig 服务名 on
单独关闭某一服务的命令;chkconfig 服务名 off
查看某一服务的状态:/etc/intd.d/服务名 status
设置完成之后,重启一下即可
方法3:用户自定义开机程序(/etc/rc.d/rc.local)
用户可以将自己书写的shell script文件放入其中,或者数据库的自动,was等等
比如让数据库开机自启:
vi /etc/rc.local添加以下内容:
su - oracle -c 'lsnrctl start' //让监听启动起来
su - oracle -c 'dbstart' //让数据库启动起来