Linux系统中的rc.local自启动服务
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服务)
扩展资料:
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等功能,就需要在配置文件中另行指定。
0条评论