Linux系统中的rc.local自启动服务

Linux系统中的rc.local自启动服务,第1张

linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。

本文中假设inittab中设置的init tree为:

/etc/rcd/rc0d

/etc/rcd/rc1d

/etc/rcd/rc2d

/etc/rcd/rc3d

/etc/rcd/rc4d

/etc/rcd/rc5d

/etc/rcd/rc6d

/etc/rcd/initd

目录

1 关于linux的启动

   2 关于rcd

   3 启动脚本示例

   4 关于rclocal

   5 关于bash启动脚本

   6 关于开机程序的自动启动

1 关于linux的启动

init是所有进程的顶层

   init读取/etc/inittab,执行rcsysinit脚本

   (注意文件名是不一定的,有些unix甚至会将语句直接写在inittab中)

rcsysinit脚本作了很多工作:

init $PATH

config network

start swap function

set hostname

check root file system, repair if needed

check root space

rcsysinit根据inittab执行rcd脚本

   linux是多用户系统,getty是多用户与单用户的分水岭

   在getty之前运行的是系统脚本

2 关于rcd

所有启动脚本放置在 /etc/rcd/initd下

rcd中放置的是initd中脚本的链接,命名格式是:

S{number}{name}

K{number}{name}

S开始的文件向脚本传递start参数

K开始的文件向脚本传递stop参数

number决定执行的顺序

3 启动脚本示例

这是一个用来启动httpd的 /etc/rcd/initd/apache 脚本:

代码:

#!/bin/bash

可以看出他接受start,stop,restart,status参数

然后可以这样建立rcd的链接:

代码:

cd /etc/rcd/initd

ln -sf /initd/apache /rc0d/K28apache

ln -sf /initd/apache /rc1d/K28apache

ln -sf /initd/apache /rc2d/K28apache

ln -sf /initd/apache /rc3d/S32apache

ln -sf /initd/apache /rc4d/S32apache

ln -sf /initd/apache /rc5d/S32apache

ln -sf /initd/apache /rc6d/K28apache

4 关于rclocal

经常使用的 rclocal 则完全是习惯问题,不是标准。

各个发行版有不同的实现方法,可以这样实现:

代码:

touch /etc/rcd/rclocal

chmod +x /etc/rcd/rclocal

ln -sf /etc/rcd/rclocal /etc/rcd/rc1d/S999rclocal

ln -sf /etc/rcd/rclocal /etc/rcd/rc2d/S999rclocal

ln -sf /etc/rcd/rclocal /etc/rcd/rc3d/S999rclocal

ln -sf /etc/rcd/rclocal /etc/rcd/rc4d/S999rclocal

ln -sf /etc/rcd/rclocal /etc/rcd/rc5d/S999rclocal

ln -sf /etc/rcd/rclocal /etc/rcd/rc6d/S999rclocal

5 关于bash启动脚本

/etc/profile

/etc/bashrc

~/bash_profile

~/bashrc

是bash的启动脚本

一般用来设置单用户的启动环境,也可以实现开机单用户的程序,但要明确他们都是属于bash范畴而不是系统范畴。

他们的具体作用介绍如下:

/bin/bash这个命令解释程序(后面简称shell)使用了一系列启动文件来建立一个运行环境:

   /etc/profile

/etc/bashrc

~/bash_profile

~/bashrc

~/bash_logout

每一个文件都有特殊的功用并对登陆和交互环境有不同的影响。

/etc/profile 和 ~/bash_profile 是在启动一个交互登陆shell的时候被调用。

/etc/bashrc 和 ~/bashrc 是在一个交互的非登陆shell启动的时候被调用。

~/bash_logout 在用户注销登陆的时候被读取

一个交互的登陆shell会在 /bin/login 成功登陆之后运行。一个交互的非登陆shell是通过命令行来运行的,如[prompt]$/bin/bash。一般一个非交互的shell出现在运行 shell脚本的时候。之所以叫非交互的shell,是因为它不在命令行上等待输入而只是执行脚本程序。

6 关于开机程序的自动启动

系统脚本可以放置在/etc/rcd/initd中并建立/etc/rcd/rcd链接,也可以直接放置在/etc/rcd/rclocal中。

initd脚本包含完整的start,stop,status,reload等参数,是标准做法,推荐使用。

为特定用户使用的程序(如有的用户需要使用中文输入法而有的不需要)放置在~/中的bash启动脚本中。

========================================================================

   设置系统自动启动

   在/etc/initd/下创建smsafe文件

内容:

#!/bin/bash

# chkconfig: 35 95 1

# description: script to start/stop smsafe

case $1 in

start)

sh /opt/startsmssh

;;

stop)

sh /opt/stopsmssh

;;

)

echo "Usage: $0 (start|stop)"

;;

esac

更改权限

# chmod 775 smsafe

加入自动启动

# chkconfig –add smsafe

查看自动启动设置

# chkconfig –list smsafe

smsafe 0:off 1:off 2:off 3:on 4:off 5:on 6:off

以后可以用以下命令启动和停止脚本

# service smsafe start 启动

# service smsafe stop 停止

=======================================================================

jira 的启动主要依靠的是bin目录下的catalinash脚本,提供了如init脚本的start,stop等参数

#!/bin/bash

#

# chkconfig: 2345 85 15

# description: jira

# processname: jira

# source function library

/etc/initd/functions

#下面一行比较重要,为jira的安装路径,没有的话,将会提示找不到文件

CATALINA_HOME="/var/www/jira"

RETVAL=0

start() {

echo -n $"Starting jira services: "

/var/www/jira/bin/catalinash start

RETVAL=$

echo

}

stop() {

echo -n $"Shutting down jira services: "

/var/www/jira/bin/catalinash stop

RETVAL=$

echo

}

case "$1" in

start)

start

;;

stop)

stop

;;

restart|reload)

stop

start

;;

status)

status jira

RETVAL=$

;;

)

echo $"Usage: $0 {start|stop|restart|status}"

exit 1

esac

exit $RETVAL

-------------------------------

保存为/etc/initd/jira

然后利用chkconfig --add jira

OK

启动/etc/initd/jira start

停止/etc/initd/jira stop

=======================================================================

(以Websphere为例子)

1 在/etc/rcd/initd目录下新建启动脚本startWebsphere,键入以下内容:

   #!/bin/sh

   /opt/WebSphere/AppServer/bin/startServersh server1

修改该文件的权限:

   chmod 755 startWebsphere

2 在对应的目录下建立软连接(假设系统默认进入X11)

   cd /etc/rcd/rc5d

   ln -s /initd/startWebsphere S99startWebsphere

3 重启系统即可

=======================================================================

   linux下oracle的自启动脚本

1写一个StartOraclesql,假设放在/目录下

   vi /StartOraclesql加入如下两行保存

   startup

   exit

2配置/etc/rclocal

   vi /etc/rclocal加入如下内容,保存

   su - oracle -c '$ORACLE_HOME/bin/lsnrctl start'

   su - oracle -c '$ORACLE_HOME/bin/sqlplus "/as sysdba" @/StartOraclesql'

3 如果还要自动启动oracle enterprise manager(em)和isqlplus可以如下配置

   vi /etc/rclocal 加入:

   su - oracle -c '$ORACLE_HOME/bin/emctl start dbconsole'

   su - oracle -c '$ORACLE_HOME/bin/isqlplusctl start'

要知道em和isqlplus等使用的端口可以查询文件:

   $ORACLE_HOME/install/portlistini(以oracle 10103为例)

=======================================================================

   #root命令行下直接绑定演示:

   arp -s 192xxx 00:ea:se绑定

   arp -d 删除

   arp -f 批量导入

linux服务器怎么重启步骤?

你是否正在使用基于Ubuntu的系统,然后发现无法连接网络?你一定会很惊讶,很多的问题都可以简单地通过重启服务解决。在这篇文章中,我会介绍在Ubuntu或者其他Linux发行版中重启网络的几种方法,你可以根据自身需要选择对应的方法。这些方法基本分为两类:通过命令行方式重启网络如果你使用的Ubuntu服务器版,那么你已经在使用命令行终端了。如果你使用的是桌面版,那么你可以通过快捷键Ctrl+Alt+TUbuntu键盘快捷键打开命令行终端。在Ubuntu中,有多个命令可以重启网络。这些命令,一部分或者说大部分,也适用于在Debian或者其他的Linux发行版中重启网络。

1、networkmanager服务这是通过命令行方式重启网络最简单的方法。它相当于是通过图形化界面重启网络(重启Network-Manager服务)。sudoservicenetwork-managerrestart此时,网络图标会消失一会儿然后重新显示。

2、systemdservice命令仅仅是这个方式的一个封装(同样的也是initd系列脚本和Upstart相关命令的封装)。systemctl命令的功能远多于service命令。通常我更喜欢使用这个命令。sudosystemctlrestartNetworkManagerservice这时,网络图标又会消失一会儿。如果你想了解systemctl的其他选项,可以参考man帮助文档。

3、nmcli这是Linux上可以管理网络的另一个工具。这是一个功能强大而且实用的工具。很多系统管理员都喜欢使用该工具,因为它非常容易使用。这种方法有两个操作步骤:关闭网络,再开启网络。sudonmclinetworkingoff这样就会关闭网络,网络图标会消失。接下来,再开启网络:sudonmclinetworkingon你可以通过man帮助文档了解nmcli的更多用法。

4、ifupifdown这两个命令直接操作网口,切换网口是否可以收发包的状态。这是Linux中最应该了解的网络命令之一。使用ifdown关闭所有网口,再使用ifup重新启用网口。通常推荐的做法是将这两个命令一起使用。sudoifdown-asudoifup-a注意:这种方法不会让网络图标从系统托盘中消失,另外,各种网络连接也会断。补充工具:nmtui这是系统管理员们常用的另外一种方法。它是在命令行终端中管理网络的文本菜单工具。nmtui打开如下菜单:nmtuiMenu注意:在nmtui中,可以通过up和down方向键选择选项。选择“Activateaconnection”:nmtuiMenuSelectActivateaconnection按下回车键,打开“connections”菜单。nmtuiConnectionsMenu接下来,选择前面带星号()的网络。在这个例子中,就是MGEO72。Selectyourconnectioninthenmtuiconnectionsmenu按下回车键。这就将“停用”你的网络连接。nmtuiConnectionsMenuwithnoactiveconnection选择你要连接的网络:Selecttheconnectionyouwantinthenmtuiconnectionsmenu按下回车键。这样就重新激活了所选择的网络连接。nmtuiConnectionsMenu按下Tab键两次,选择“Back”:SelectBackinthenmtuiconnectionsmenu按下回车键,回到nmtui的主菜单。nmtuiMainMenu选择“Quit”:nmtuiQuitMainMenu退出该界面,返回到命令行终端。就这样,你已经成功重启网络了。通过图形化界面重启网络显然,这是Ubuntu桌面版用户重启网络最简单的方法。如果这个方法不生效,你可以尝试使用前文提到的命令行方式重启网络。NM小程序是NetworkManager的系统托盘程序标志。我们将使用它来重启网络。首先,查看顶部状态栏。你会在系统托盘找到一个网络图标(因为我使用Wi-Fi,所以这里是一个Wi-Fi图标)。接下来,点击该图标(也可以点击音量图标或电池图标)。打开菜单。选择“TurnOff”关闭网络。RestartnetworkinUbuntu网络图标会在状态栏中消失,这表示你已经成功关闭网络了。再次点击系统托盘重新打开菜单,选择“TurnOn”,重新开启网络。RestartingnetworkinUbuntu恭喜!你现在已经重启你的网络了。其他提示:刷新可用网络列表如果你已经连接上一个网络,但是你想连接到另外一个网络,你如何刷新WiFi列表,查找其他可用的网络呢?我来向你展示一下。Ubuntu没有可以直接“刷新WiFi网络”的选项,它有点隐蔽。你需要再次打开配置菜单,然后点击“SelectNetwork”。RefreshwifinetworklistinUbuntu选择对应的网络修改你的WiFi连接。你无法马上看到可用的无线网络列表。打开网络列表之后,大概需要5秒才会显示其它可用的无线网络。SelectanotherwifinetworkinUbuntu等待大概5秒钟,看到其他可用的网络。现在,你就可以选择你想要连接的网络,点击连接。这样就完成了。总结重启网络连接是每个Linux用户在使用过程中必须经历的事情。我们希望这些方法可以帮助你处理这样的问题!你是如何重启或管理你的网络的?我们是否还有遗漏的?请在下方留言。via:https://itsfosscom/restart-network-ubuntu作者:Sergiu选题:lujun9972译者:bodhix校对:wxy本文由LCTT原创编译,Linux中国荣誉推出

linux怎么重启服务全部服务?

一种是可以使用service脚本来调度,如:service服务名startservice服务名stopservice服务名restart一种是直接执行某个服务自己的管理脚本,以smb服务为例/etc/initd/smbstart/etc/initd/smbstop/etc/initd/smbrestart

怎么使用linux命令重启服务器?

1、首先我首要把linux开机,命令rebot这个是linux的重启命令,输入回车就重新启动。

2、reboot有一参数,执行的意义就不一样了reboot-f就是强制关机不调用shutdown。

3、命令reboot-i在重开机之前,先关闭所有网络界面。

4、命令reboot-n重开机之前不检查是否有未结束的程序。

5、命令reboot-w仅做测试,并不真正将系统重新开机,只会把重开机的数据写入/var/log目录下的wtmp记录文件。

linux的定时重启的具体命令?

LINUX服务器定时重启的具体命令如下:crontab-e0

1/sbin/reboot(01表示每天凌晨一点重启)011/sbin/reboot(011表示每周一凌晨一点重启30

2/home/bin/oraclebackupsh(备份数据库和站点目录)30

3/home/bin/cmsbackupsh(备份数据库和站点目录)#/etc/initd/crondrestart#chkconfig--levels35crondon(重启crond服务)

扩展资料:

在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,格式如下:minutehourdaymonthweekcommand其中:1minute:表示分钟,可以是从0到59之间的任何整数。2hour:表示小时,可以是从0到23之间的任何整数。3day:表示日期,可以是从1到31之间的任何整数。4month:表示月份,可以是从1到12之间的任何整数。5week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。6command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。

u8如何重启服务器?

⑴shutdown指定在多长时间之后关闭系统重启系统并不真正关机,只是给每个登录用户发送警告信号关闭系统(halt)⑵halthalt是最简单的关机命令,其实际上是调用shutdown-h命令。halt执行时,杀死应用进程,文件系统写操作完成后就会停止内核。halt命令的部分参数如下:没有调用shutdown而强制关机或重启关机或重新启动之前,关掉所有的网络接口关机时调用poweroff,此选项为缺省选项⑶rebootreboot工作过程与halt类似,作用是重新启动,而halt是关机。其参数与halt类似。⑷initinit是所有进程的祖先,其进程号始终为1。init用于切换系统的运行级别,切换的工作是立即完成的。init0命令用于立即将系统运行级别切换为0,即关机;init6命令用于将系统运行级别切换为6,即重新启动。如果有什么不懂的话可以去看看《Linux就该这么学》这本书,非常适合新手学习Linux。

linux系统自动重启原因?

检查一下系统的状态,CPU使用率,内存使用情况等。首先排除一下是资源耗尽造成的故障

可以先检查系统日志,最有可能造成系统重启的就是OOM(内存溢出)或者通俗理解为内存不足。

所以就有两种可能,一是别人也登陆了你的服务器,然后执行了重启命令。二是你系统中有定时任务,到点定时执行重启服务器的命令。

linux文本界面下重启命令是?

我的:Linux文本界面下重启,可以执行命令:

1reboot

2init6

3shutdown-rnow

Linux下。启动、重启、停止。服务的命令是多少?

启动直接点开机键就可以了,重启reboot就可以了关机,init3、shutdown-fnow、halt都可以关机,重启服务services服务restart停止服务services服务stop开始服务services服务start服务状态services服务status

linux如何启动,停止,查看服务?

可以通过servicexxxstart/stop/resrart控制,可以通过systemctl,也可以通过/etc/initd/xxxservice来控制。

linux操作系统下,如何启动oracle服务与监听命令?

1、切换到oracle用户su-oracle

2、startdbsh命令脚本#!/bin/shlsnrctlstartsqlplus"/assysdba"EOFstartupEOF

3、netstat-ntlp或ps-ef|grepora检查

4、shutdbsh命令脚本#!/bin/bashlsnrctlstopsqlplus"/assysdba"EOFshutdownimmediateEOF

Linux怎么禁止服务开机启动?

命令:service

Service服务名strart开启stoprestart

如:servicesshdstart

FTP服务的开启及关闭

servicevsftpdstart/stop/restart

chkconfig服务名on开机时自动开启服务

chkconfig_list查看服务状态

自己总结的

linux设置开机服务自动启动/关闭自动启动命令

[root@localhost

~]#

chkconfig

--list

显示开机可以自动启动的服务

[root@localhost

~]#

chkconfig

--add

添加开机自动启动服务

[root@localhost

~]#

chkconfig

--del

删除开机自动启动

1、查看环境变量是否正常

2、换角度考虑、查证通过查询结果初步判断环境变量是正常的,然后通过另外一个角度去考虑,是不是Oracle程序本身安装有问题,因为昨天系统才安装过ASM和Oracle数据库,测试都是正常的,应该讲没有啥问题才对,但是突然间想起在服务器重启的时候,启动界面提示要加载文件系统,而且时间很长。

3、查看文件系统是否有问题通过在启动时提示的信息,就是查看文件系统是否有问题,想起之前硬盘挂载在不同的路下。

4、通过上面命令查询结果,发现问题所在。因为sdb1我调整挂载在/oracle路径下的,原来的sdc1是挂载/oradata路径,由于sdc1mount在/oradata路径下没有设置在开机时启动,而且sdb1是默认的启动,从而导致在启动的sdc1挂载失败,影响Oracle相关程序启动,所以命令失败无法找到,去查看fstab内容。

5、查询UUID块设备,通过命令查看后,并没有发现oracle路径下的设备,再通过查询UUID块设备下有哪些设备。

6、查询块设备下详细的信息再通过lsblk -f 命令查询块设备下,通过上述几个命令可以判断出是由于sdc1分区没有自动挂载导致Oracle程序没有办法启动

7、修改/etc/fstab配置文件,让sdc1设备在开机自动启动,最好通过UUID来挂载。

Linux UUID的作用及意义

原因1:它是真正的唯一标志符

UUID为系统中的存储设备提供唯一的标识字符串,不管这个设备是什么类型的。如果你在系统中添加了新的存储设备如硬盘,很可能会造成一些麻烦,比如说启动的时候因为找不到设备而失败,而使用UUID则不会有这样的问题。

原因2:设备名并非总是不变的

自动分配的设备名称并非总是一致的,它们依赖于启动时内核加载模块的顺序。如果你在插入了USB盘时启动了系统,而下次启动时又把它拔掉了,就有可能导致设备名分配不一致。

使用UUID对于挂载移动设备也非常有好处──例如我有一个24合一的读卡器,它支持各种各样的卡,而使用UUID总可以使同一块卡挂载在同一个地方。

原因3:Ubuntu中的许多关键功能现在开始依赖于UUID。

linux怎么用web服务器?

安装好linux操作系统之后再安装web服务器,常见的WEB服务器有apache,nginx,lighttpd等。

设置好WEB服务器之后,把你的网页文件复制到你设置好的目录下。启动web服务器,在其他电脑打开浏览器,在地址栏输入服务器的地址,就可以正常访问web服务器了。

linux使用?

1linux:

一种开源的,免费的操作系统,安装在计算机硬件上,用来管理计算机的硬件和软件资源的系统软件

linux注重安全性,稳定性,高并发处理能力

linux没有优异的可视化界面

windows用于个人计算机,linux通常用于企业服务器上

任何使用linux的系统资源用户,必须使用一个合法的账号和密码

使用linux的常用命令有:

1查看当前所在目录:pwd

2查看指定目录下的文件和文件列表:ls指定文件

比如:ls/home

3ls-l/home:以列表的形式显示

4ls-a/home:显示指定目录下的所有的文件和子文件(包括虚拟的目录)

5ls-al/home:以列表的形式显示指定目录下的所有的文件和子文件(包括虚拟的目录)

6ls|grep单词:过滤含有此单词的命令并显示出来

7ls-l:查看权限

如何记录linux服务器内存使用情况?

1、查看内存:在SSH远程控制端,输入命令“cat/proc/meminfo”,按下“Enter”回车键,即可看到总的内存占用情况。

2、查看CPU:在SSH远程控制端,输入命令“top”,按下“Enter”回车键,即可看到cpu的使用率。

3、Linux上的VNC服务端,比较常用的就是tigervnc和x11vnc。x11vnc可以让远程访问者控制本地的实际显示器,而tigervnc既可以远程控制实际显示器,还可以控制平行独立于当前物理显示器的虚拟显示器。

linux服务器怎么访问网站?

已绑定域名,则直接使用网站域名访问即可;

若未绑定域名,可使用Linux服务器ip+80端口访问;

当然,web服务器的默认端口是80,也有可能是其他端口,这就需要根据实际情况来确定了。

linux中apache服务器如何使用?

在linux操作系统中安装apache服务器之后,需要在启动脚本中启用apache服务器,然后使用apachectl启动apache服务器,这样就可以从其他机器访问Linux操作系统的apache服务器提供的服务了。如果需要支持PHP或者CGI等功能,就需要在配置文件中另行指定。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » Linux系统中的rc.local自启动服务

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情