关于linux服务器进程监控及自动重启的方法介绍
本周开始,新手游进行删档封测阶段,前两天表现还好,今天更新后出现几次宕机行为,比较影响玩家的测试和体验,我们的服务器管理系统尚未完善,为了晚上能够预防宕机造成损失,先用一种简单的方案临时顶替一下。
实现原理主要是使用linux提供的crontab机制,定时查询服务器进程是否存在,如果宕机则处理我们预设的脚本。
首先我们要向crontab加入一个新任务。
# crontab -e:进入编辑状态,其实就是使用vi编辑。
/1 sh /root/monitorsh
我这里只是简单的设置每分钟调用一个shell脚本monitorsh。这里可以配置的更强大,大家可以去搜索一下crontab的教程,网上有很多这类的教程。
这里需要注意的是,很多教程配置command的时候直接使用/root/monitorsh,我设置的时候发现这样配置不会执行shell脚本,前面加上sh后就能执行了。
然后我们开始写monitorsh这个shell脚本。
#! /bin/sh proc_name="WorldFrame_d"
#进程名 proc_num()
#查询进程数
{
num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
return $num}proc_num number=$
#获取进程数量
if [ $number -eq 0 ]
#如果进程数量为0then
#重新启动服务器,或者扩展其它内容。
cd /longwen/server/sbin/linux; /WorldFrame_d -c 1fi
我这个脚本,只是简单的检测了进程是否存在,不存在就自动重启服务器。
这里其实也可以扩展一下,比如对日志文件的处理以及重启时间等的记录等等。
需要注意的是在windows编辑sh文件要注意格式问题(CR/LR),否则容易出现sh执行错误的BUG。
好了,进行测试吧,我这里测试OK,记录一下,希望能帮到其它遇到类似问题的同学。谢谢阅读,希望能帮到大家,请继续关注脚本之家,我们会努力分享更多优秀的文章。
Linux关闭和重启系统一般使用相同的命令可以实现。
在Linux系统下常用在关机/重启命令有shutdown、halt、reboot和init,但每个命令的内部工作过程是不同的。
1.shutdown命令
Shutdown命令可以安全地关闭系统,有些用户会使用直接断电源的方式来关闭计算机,这是十分危险的。Linux与Windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失,使系统处于不稳定的状态,在有的系统中甚至会损坏硬件设备。
如果在系统关机前使用shutdown命令,系统管理员会通知所有登录的用户系统将要关闭,并且login命令会被冻结,即新的用户不能再登录。直接关机或者延迟一定的时间才关机都是可能的,还可能重启。
shutdown命令可以安全地关闭或重启Linux系统,它在系统关闭之前给系统上的所有登录用户提示一条警告信息。该命令还允许用户指定一个时间参数,此参数可以是一个精确的时间,也可以是从现在开始的一个时间段。精确时间的格式是hh:mm,表示小时和分钟,时间段由“+”和分钟数表示。系统执行该命令后,会自动进行数据同步的工作。
(1)语法
shutdown [选项] [时间] [警告信息]
(2)选项说明
-k:并不真正关机,只是发出警告信息给所有用户
-r:关机后立即重新启动
-h:关机后不重新启动
-f:快速关机,重启动时跳过fsck
-n:快速关机,不经过init程序
-c:取消一个已经运行的shutdown[-time]:设定关机前的时间
(3)例:立即关闭系统
#shutdown –h now
(4)例:定时45min后关闭系统
#shutdown –h 45
(5)例:重新启动系统,并发出警告信息
#shutdown –r now“system will be reboot now!”
2.halt命令
其实halt命令就是调用“shutdown-h”命令执行的。
(1)语法
halt [选项]
(2)选项说明
-c:防止sync系统调用,它用在fsck修补根分区之后,以阻止内核用老版本的超级块覆盖修补过的超级块
-w:并不是真正的重启或关机,只是写wtmp(/var/log/wtmp)记录
-d:不写wtmp记录(已包含在选项[-n]中)
-f:没有调用shutdown而强制关机或重启-I:关机(或重启)前,关掉所有的网络接口
-p:
该选项为缺省选项,即关机时调用poweroff
(3)例:使用halt命令关机
#halt
Broadcast message from root(pts/4)…
The system is going down for system halt now!
3.reboot命令
Reboot的工作过程与halt相似,不过reboot是引发主机重启,而halt是引发主机关机。它的参数与halt相似。
(1)例:使用reboot命令重启计算机
#reboot
Broadcast message from root(pts/4)…
The system is going down for system reboot now!
4.init命令
Init是所有进程的祖先,它的进程号始终为1,所以发送TREM信号给init会终止所有的用户进程和守护进程等。shutdown就是使用这种机制。init定义了7个运行级别,其中init0为关机,init为重启。
1linux操作系统,专业性要求比较高
2重启动系统用reboot init 6 shutdown -r now
3重启服务可以用,service xxx restart systemctl restart xxx xxx表示服务
4希望可以帮助你,请采纳,谢谢!
linux系统如何设置只让一个固定的ip通过ssh登录到他的账号上啊?
修改/etc/hostsallow文件可以控制允许访问本机的IP在这个文件中添加sshd:允许访问的IP地址保存退出,重启ssh服务生效。
如何开启ssh服务?
一般的linux系统都是默认安装了ssh服务,ssh的服务名一般都是sshd:servicesshdstart开启ssh服务servicesshdstop停止ssh服务servicesshdrestart重启ssh服务或者使用使用带有路径的脚本:/etc/initd/sshdstart/etc/initd/sshdstop/etc/initd/restart
请问在aix中如何重启sshd服务?
aix中如何重启sshd服务:建议通过console连接,不然停止ssh后网络连接就断开连不上了。AIX:
1AIX(AdvancedInteractiveeXecutive)是IBM基于ATTUnixSystemV开发的一套类UNIX操作系统,运行在IBM专有的Power系列芯片设计的小型机硬件系统之上。
2它符合Opengroup的UNIX98行业标准(TheOpenGroupUNIX98BaseBrand),通过全面集成对32-位和64-位应用的并行运行支持,为这些应用提供了全面的可扩展性。它可以在所有的IBM~p系列和IBMRS/6000工作站、服务器和大型并行超级计算机上运行。
SSH连接linux服务器反复提示输密码?
ssh不能登录linux需要检查客户端和服务器端:
客服端:
ssh连接方式为:ip+端口号(默认为22)
服务器端:
1、先把sshd服务开启;
/etc/initd/shhdrestrat2、把linux的防火墙关掉;
1)重启linux后生效:
chkconfigiptablesoff2)即时生效,重启后失效:
serviceiptablesstop3、客户端重新ssh登陆linux。
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常用命令nastat?
Netstat命令用于显示各种网络相关信息,如网络连接,路由表,接口状态(InterfaceStatistics),masquerade连接,多播成员(MulticastMemberships)等等。
执行netstat后,其输出结果为
$netstat|more
ActiveInternetconnections(w/oservers)
ProtoRecv-QSend-QLocalAddressForeignAddressState
tcp00100215:ssh10022:52091ESTABLISHED
ActiveUNIXdomainsockets(w/oservers)
ProtoRefCntFlagsTypeStateI-NodePath
unix11DGRAM11021/dev/log
unix2DGRAM11556@/org/freedesktop/hal/udev_event
unix2DGRAM8986@/org/kernel/udev/udevd
unix3STREAMCONNECTED17777
unix3STREAMCONNECTED17776
windows10如何远程连接到Linux系统?
windows10远程连接到Linux系统的方法
1先确定Linux系统的电脑或服务器开启SSH服务,并确定端口号:在终端中输入sudoservicesshdstatus,如果出现Active:active(running),说明SSH服务已启动;
8填写完成点击确定,即可进入远程linux电脑的命令状态,然后就可以执行相关命令操作了。
以上就是windows10如何远程连接到Linux系统的全部内容
1、在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。
2、shutdown命令安全地将系统关机。在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。并且login指令会被冻结,即新的用户不能再登录。
3、halt——最简单的关机命令,其实halt就是调用shutdown -h。halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。
4、reboot的工作过程差不多跟halt一样,不过它是引发主机重启,而halt是关机。它 的参数与halt相差不多。
5、init是所有进程的祖先,它的进程号始终为1, init 0为关机,init 1为重启。
Linux操作系统是基于UNIX操作系统发展而来的一种克隆系统,它诞生于1991 年的 [Linux桌面] 10 月5 日(这是第一次正式向外公布的时间)。以后借助于Internet网络,并通过全世界各地计算机爱好者的共同努力,已成为今天世界上使用最多的一种UNIX 类操作系统,并且使用人数还在迅猛增长。
Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。它主要用于基于Intel x86系列CPU的计算机上。这个系统是由全世界各地的成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的Unix兼容产品。
Linux以它的高效性和灵活性著称,Linux模块化的设计结构,使得它既能在价格昂贵的工作站上运行,也能够在廉价的PC机上实现全部的Unix特性,具有多任务、多用户的能力。Linux是在GNU公共许可权限下免费获得的,是一个符合POSIX标准的操作系统。
Linux操作系统软件包不仅包括完整的Linux操作系统,而且还包括了文本编辑器、高级语言编译器等应用软件。它还包括带有多个窗口管理器的X-Windows图形用户界面,如同我们使用Windows NT一样,允许我们使用窗口、图标和菜单对系统进行操作。
0条评论