Linux服务器开机启动报错

Linux服务器开机启动报错
Linux服务器开机启动报错

问题描述:

重启机房服务器119 开机的时候卡在这里吗,重启后还是卡这里。

问题分析:

由于前一段时间,tomcat服务的一个错误代码导致CPU一直接近100% 运行,并且在网上提问后发现是/home 这个分区有错误,导致系统起不来。怀疑是前一段时间的磁盘的高速运行使得磁盘有坏道,导致在系统检测磁盘的时候(/etc/fstab)一直卡在这里。

解决问题:

百度后得知,网友是这样解决的,

解决方法1:

1.首先在命令行输入(可选)

#mount | grep ''on /''

得到root用户所在分区/dev/your_partition

2.修复文件系统(修复有可能损坏系统文件)

#fsck -y /dev/your_partition

注:检测并修复磁盘/dev/root,-y 选项指定检测每个文件是自动输入yes

3.输入reboot进行重启,仍然报错

4.继续在命令行输入修复命令

#fsck -y /dev/sda1

5.重启后,继续报错Starting auditd:FAILED

注:网上搜索的解释是“The auditd daemon will fail to start if its logfile is readable by anyone but root”,即由于root没有写auditd日志文件的权限,导致auditd启动失败

输入如下命令:

#chown root.root /var/log/audit/audit.log

#chmod 600 /var/log/audit/audit.log

6.重启,成功进入系统

小结:fsck不仅可以对文件系统进行扫描,还能修正文件系统的一些问题,值得注意的是fsck 扫描文件系统时一定要在单用户模式、修复模式或把设备umount后进行!操作前一定先备份(使用dd命令备份)!

解决方法2:

如果觉得这个检查很消耗时间,可以去掉,方法如下:

1. 进入单用户

执行root# mount –o remount,rw /

然后修改vi /etc/fstab

2. 进入救援模式(光盘启动按F2 然后输入Linux rescue )

vi /mnt/sysimage/etc/fstab

修改方法:

把错误的磁盘注释掉或者

把根目录的最后一个域改为0

/dev/sda1 / ext3 defaults 1 0

附最后两个域的意义:

这两个数字分别位于/etc/fstab文件的第五个域(fs_mntops)和第六个域(fs_passno)

fs_mntops:用于规定文件系统的备份频率,系统的自动备份程序在执行时需要读取这个域的值,1代表系统要求每天备份一次文件系统,2代表每2天备份一次,余此类推...如果这个值是0,那么意味着不备份这个文件系统.

fs_passno:被fsck用来决定检查文件系统完整性的次数,在系统每次重启时系统将启动fsck对文件系统进行完整性检查.这个数字越小就越先得到检查,通常根文件系统的fs_passno被置1,其他文件系统的被置2,如果这个数字是0,就意味着系统重启动时不进行完整性检查。

关于FSCK说明如下:

说明:在Linux系统中,为了增加系统性能,通常系统默认一些数据写在内存中,并不会直接将数据写入硬盘,这是因为内存速度要比硬盘快若干倍。但是有个问题,万一由于“断电”或者其他未知原因,造成系统死机,怎么办?系统就崩溃了。所以,我们需要在特定的时候让数据直接回存到硬盘中。这里提供几个常用的命令,其中,fsck命令最重要. 当文件系统发生错误时,可用fsck命令尝试加以修复.直接采用分区编号(如/dev/had3),或使用挂载点(Mount Point,如/、/usr等)指定文件系统皆可。假设一次指定多个文件系统,而这些系统分别位于不同的物理磁盘上,则fsck将会尝试同步的方式去检查他们,以节省操作时间。

参数:

filesys :device 名称(eg./dev/sda1),mount 点(eg. / 或/usr)

-t : 给定档案系统的型式,若在/etc/fstab 中已有定义或kernel 本身已支援的则不需加上此参数-s : 依序一个一个地执行fsck 的指令来检查

-A : 对/etc/fstab 中所有列出来的partition 做检查

-C : 显示完整的检查进度

-d : 列印e2fsck的debug 结果

-p : 同时有-A 条件时,同时有多个fsck 的检查一起执行

-R : 同时有-A 条件时,省略/ 不检查

-V : 详细显示模式

-a : 如果检查有错则自动修复

-r : 如果检查有错则由使用者回答是否修复

dd命令使用详解

1.命令简介

dd 的主要选项:

指定数字的地方若以下列字符结尾乘以相应的数字:

b=512, c=1, k=1024, w=2, xm=number m

if=file #输入文件名,缺省为标准输入。

of=file #输出文件名,缺省为标准输出。

ibs=bytes #一次读入bytes 个字节(即一个块大小为bytes 个字节)。

obs=bytes #一次写bytes 个字节(即一个块大小为bytes 个字节)。

bs=bytes #同时设置读写块的大小为bytes ,可代替ibs 和obs 。

cbs=bytes #一次转换bytes 个字节,即转换缓冲区大小。

skip=blocks #从输入文件开头跳过blocks 个块后再开始复制。

seek=blocks #从输出文件开头跳过blocks 个块后再开始复制。(通常只有当输出文件是磁盘或磁带时才有效)。

count=blocks #仅拷贝blocks 个块,块大小等于ibs 指定的字节数。

conv=conversion[,conversion...] #用指定的参数转换文件。

转换参数:

ascii 转换EBCDIC 为ASCII。

ebcdic 转换ASCII 为EBCDIC。

ibm 转换ASCII 为alternate EBCDIC.

block 把每一行转换为长度为cbs 的记录,不足部分用空格填充。

unblock 使每一行的长度都为cbs ,不足部分用空格填充。

lcase 把大写字符转换为小写字符。

ucase 把小写字符转换为大写字符。

swab 交换输入的每对字节。

noerror 出错时不停止。

notrunc 不截短输出文件。

sync 把每个输入块填充到ibs个字节,不足部分用空(NUL)字符补齐。

2.实例分析

2.1.数据备份与恢复

2.1.1整盘数据备份与恢复

备份:

dd if=/dev/hdx of=/dev/hdy #将本地的/dev/hdx整盘备份到/dev/hdy

dd if=/dev/hdx of=/path/to/image #将/dev/hdx全盘数据备份到指定路径的image文件dd if=/dev/hdx | gzip >/path/to/image.gz

#备份/dev/hdx全盘数据,并利用gzip工具进行压缩,保存到指定路径

恢复:

dd if=/path/to/image of=/dev/hdx #将备份文件恢复到指定盘

gzip -dc /path/to/image.gz | dd of=/dev/hdx #将压缩的备份文件恢复到指定盘

2.1.2.利用netcat远程备份

dd if=/dev/hda bs=16065b | netcat < targethost-IP > 1234 #在源主机上执行此命令备份/dev/hda netcat -l -p 1234 | dd of=/dev/hdc bs=16065b #在目的主机上执行此命令来接收数据并写入/dev/hdc netcat -l -p 1234 | bzip2 > partition.img

netcat -l -p 1234 | gzip > partition.img

#以上两条指令是目的主机指令的变化分别采用bzip2 gzip对数据进行压缩,并将备份文件保存在当前目录。

2.1.

3.备份MBR

备份:dd if=/dev/hdx of=/path/to/image count=1 bs=512

备份磁盘开始的512Byte大小的MBR信息到指定文件

恢复:dd if=/path/to/image of=/dev/hdx

将备份的MBR信息写到磁盘开始部分

2.1.4.备份软盘

dd if=/dev/fd0 of=disk.img count=1 bs=1440k

将软驱数据备份到当前目录的disk.img文件

2.1.5.拷贝内存资料到硬盘

dd if=/dev/mem of=/root/mem.bin bs=1024

将内存里的数据拷贝到root目录下的mem.bin文件

2.1.6.从光盘拷贝iso镜像

dd if=/dev/cdrom of=/root/cd.iso

拷贝光盘数据到root文件夹下,并保存为cd.iso文件

2.2.增加Swap分区文件大小

dd if=/dev/zero of=/swapfile bs=1024 count=262144 #创建一个足够大的文件(此处为256M)mkswap /swapfile #把这个文件变成swap文件

swapon /swapfile #启用这个swap文件

/swapfile swap swap defaults 0 0 #在每次开机的时候自动加载swap文件, 需要在/etc/fstab 文件中增加一行

2.3.销毁磁盘数据

dd if=/dev/urandom of=/dev/hda1

利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据。执行此操作以后,/dev/hda1将无法挂载,创建和拷贝操作无法执行。

2.4.磁盘管理

2.4.1.得到最恰当的block size

dd if=/dev/zero bs=1024 count=1000000 of=/root/1Gb.file

dd if=/dev/zero bs=2048 count=500000 of=/root/1Gb.file

dd if=/dev/zero bs=4096 count=250000 of=/root/1Gb.file

dd if=/dev/zero bs=8192 count=125000 of=/root/1Gb.file

通过比较dd指令输出中所显示的命令执行时间,即可确定系统最佳的block size大小

2.4.2测试硬盘读写速度

dd if=/root/1Gb.file bs=64k | dd of=/dev/null

dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000

通过上两个命令输出的执行时间,可以计算出测试硬盘的读/写速度

2.4.

3.修复硬盘

dd if=/dev/sda of=/dev/sda

当硬盘较长时间(比如1,2年)放置不使用后,磁盘上会产生magnetic flux point。当磁头读到这些区域时会遇到困难,并可能导致I/O错误。当这种情况影响到硬盘的第一个扇区时,可能导致硬盘报废。上边的命令有可能使这些数据起死回生。且这个过程是安全,高效的。

总结:

设置电脑开机启动项

如何设置电脑开机启动项(2009-10-19 19:40:50) 标签:电脑开机启动项无法进入系 统杀毒软件输入法显卡驱动it 开机速度有点慢,可能是随Windows启动项有点多的缘故,运行msconfig,就可以看到电脑启动时加载的程序。下面是一些常用的系统程序和应用程序。如果你的电脑中有一些来路不明的启动项,就得考虑是否中毒或者中了木马。 启动项中除了杀毒软件和输入法(cftmon不可关闭否则你就不会在任务栏看语言 栏了)外,其它的都可以关闭或者使用者可以根据自己的需要自由地选择取舍。其实关闭并不是删除,只是开机时不运行罢了。你若想运行可以从程序菜单中打开。 1.系统常见的启动项: ctfmon.exe------------是Microsoft Office产品套装的一部分。它可以选择用户文字输入程序和微软Office XP语言条。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。输入法会出现在屏幕右下角,建议不删。 NvCpl -------------是显卡桌面管理调节程 序; nvcpl.dll------------是NVIDIA显示卡相关动态链接库文件。可以停用; nvmctray - nvmctray.dll ------- DLL文件信息是显示卡相关文 件。 internat.exe ------------输入法指示器程序 LoadPowerProfile--------- Win98/Me电源管理 PCHealth ------------ WinMe系统自愈功能 ScanRegistry -----------启动时检查并备份注册表 SchedulingAgent ---------系统计划任务程序 Synchronization Manager------ Win2000同步管理 SystemTray-----------系统托盘,管理内存驻留程序 Taskbar Display Controls -----屏幕-属性-设置-高级-在任务栏中显示图标

Linux开机启动程序详解

Linux开机启动程序详解 由于操作系统正在变得越来越复杂,所以开机引导和关机下电的过程也越来越智能化。从简单的DOS系统转移到Windows NT系统,人们已经亲身感受到了这些变化——这已不仅仅是核心操作系统的启动引导和关闭了,还包括必须要同时启动或者关闭相当数量的服务项目。类似于Windows NT,Linux系统启动过程需要打开的服务项目也是数量极大的。 这里,我们假设大家已经熟悉其它操作系统的引导过程,了解硬件的自检引导步骤,就只从Linux操作系统的引导加载程序(对个人电脑而言通常是LILO)开始,介绍Linux开机引导的步骤。 加载内核 LILO启动之后,如果你选择了Linux作为准备引导的操作系统,第一个被加载的东西就是内核。请记住此时的计算机内存中还不存在任何操作系统,PC(因为它们天然的设计缺陷)也还没有办法存取机器上全部的内存。因此,内核就必须完整地加载到可用RAM的第一个兆字节之内。为了实现这个目的,内核是被压缩了的。这个文件的头部包含着必要的代码,先设置CPU进入安全模式(以此解除内存限制),再对内核的剩余部分进行解压缩。 执行内核 内核在内存中解压缩之后,就可以开始运行了。此时的内核只知道它本身内建的各种功能,也就是说被编译为模块的内核部分还不能使用。最基本的是,内核必须有足够的代码设置自己的虚拟内存子系统和根文件系统(通常就是ext2文件系统)。一旦内核启动运行,对硬件的检测就会决定需要对哪些设备驱动程序进行初始化。从这里开始,内核就能够挂装根文件系统(这个过程类似于Windows识别并存取C盘的过程)。内核挂装了根文件系统之后,将启动并运行一个叫做init的程序。 注意:在这里我们故意略去了Linux内核启动的许多细节,这些细节只有内核开发人员才感兴趣。如果你好奇的话,可以访问http://https://www.360docs.net/doc/9816518995.html,:8080地址处的“Kernel Hackers Guide”。 init进程 init进程是非内核进程中第一个被启动运行的,因此它的进程编号PID的值总是1。init读它的配置文件/etc/inittab,决定需要启动的运行级别(Runlevel)。从根本上说,运行级别规定了整个系统的行为,每个级别(分别由0到6的整数表示)满足特定的目的。如果定义了initdefault级别,这个值就直接被选中,否则需要由用户输入一个代表运行级别的数值。 输入代表运行级别的数字之后,init根据/etc/inittab文件中的定义执行一个命令脚本程序。缺省的运行级别取决于安装阶段对登录程序的选择:是使用基于文本的,还是使用基于X-Window的登录程序。

如果设置开机启动项

启动项哪些可以关闭 1、建议你下载金山清理专家,在他的启动项中有程序软件的图标,你可以很方便的将不需要开机启动的程序关闭(还可以随时打开),即方便又安全试试吧。 2、启动项过多也可造成开机慢,点击"开始"/运行/输入msconfig后回车/点击"启动"/只保留"ctfmon/杀毒软件/防火墙,"其它前面的勾都去掉./然后点击"应用"/按"确定"(如果查找到某一选项的名和路径单独关闭更好)。 3、重启电脑,启动到桌面时会出现一个对话框,在对话框中添加对勾,确定即可。 4、怎么去掉自启动项 开始/运行输入regedit回车打开注册表编辑器,依次展开 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run]在右侧,看看有没有你要找的选项,和你要找选项的路径一致,如果有删除(备份,如果今后需要自启动再恢复备份),重启电脑即可。 进入系统慢(优化系统) 1、建议你下载Windows清理助手,查杀恶意软件和木马(下载网址:https://www.360docs.net/doc/9816518995.html,)。 2、每次启动Windows XP,蓝色的滚动条都要走上好多次,其实这里我们也可以把它的滚动时间减少,以加快启动速度。打开注册表编辑器,找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters,在右边找到EnablePrefetcher主键,把它的默认值3改为1,这样滚动条滚动的时间就会减少。 3、解决开关机慢和系统结束程序慢的问题。开始/运行输入regedit打开注册表编辑器找到[HKEY-CURRENT-USER\Control Panel\Desktop]键,将WaitToKillAppTimeout改为:1000,即关闭程序时仅等待1秒。另:程序出错和系统自动关闭停止响应的程序如何实现快速关闭。 1、将HungAppTimeout 值改为:200,表示程序出错时等待0.5秒。 2、将AutoEndTasks 值设为:1,让系统自动关闭停止响应的程序。建议你下载超级兔子,让她帮助你优化电脑的开关机速度,自己就不用进行上述设置了,超级兔子就帮助你做了。 4、右击“我的电脑”/属性/硬件/设备管理器/点击“IDE ATA/A TAPI”选项/双击“次要IDE通道”/高级设置/设备类型,将“自动检测”改为“无”,主要要IDE通道也做相同的设置。 5、启动项过多也可造成开机慢,点击"开始"--运行--输入msconfig后回车--点击"启动"--只保留"ctfmon\杀毒软件\防火墙,"其它前面的勾都去掉.--然后点击"应用"--点击"确定"。 6、用系统自带的系统还原,还原到你没有出现这次故障的时候修复(如果正常模式恢复失败,请开机按F8进入到安全模式中使用系统还原)。 按照下面的方法设置,可以对系统性能有明显的提升。

Linux下添加脚本到开机自启动的方法

Linux下添加脚本到开机自启动的方法 Linux配置开机自启动执行脚本的方法有很多,这里分享两种方法,分别是修改/etc/rc.local方法和chkconfig管理设置的方法,均可实现Linux配置开机自启动执行脚本的功能! 设置test.sh为开机要启动的脚本 [root@oldboy scripts]# vim /server/scripts/test.sh [root@oldboy scripts]# cat /server/scripts/ test.sh #!/bin/bash /bin/echo $(/bin/date +%F_%T) >> /tmp/ test.log 方法一:修改/etc/rc.local [root@oldboy ~]# ll /etc/rc.local lrwxrwxrwx. 1 root root 13 Mar 30 10:50 /etc/rc.local -> rc.d/rc.local 修改/etc/rc.local文件 [root@oldboy scripts]# tail -n 1 /etc/rc.local /bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null 重启系统,查看结果 [root@oldboy ~]# cat /tmp/test.log 2018-03-30_12:00:10 方法二:chkconfig管理 删除掉方法一的配置

[root@oldboy ~]# vim /etc/init.d/test #!/bin/bash # chkconfig: 3 88 88 /bin/bash /server/scripts/test.sh >/dev/null 2>/dev/null [root@oldboy ~]# chmod +x /etc/init.d/test 添加到chkconfig,开机自启动 [root@oldboy ~]# chkconfig --add test [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:on 4:off 5:off 6:off 重启系统,查看结果 [root@oldboy ~]# cat /tmp/test.log 2018-03-30_12:00:10 2018-03-30_12:33:20 操作成功 关闭开机启动 [root@oldboy ~]# chkconfig test off [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:off 4:off 5:off 6:off 从chkconfig管理中删除test [root@oldboy ~]# chkconfig --list test test 0:off 1:off 2:off 3:off 4:off 5:off 6:off [root@oldboy ~]# chkconfig --del test

设置Linux开机自动运行脚本

设置Linux开机自动运行脚本 参考资料 实现目标:在Linux启动时,自动运行位于普通用户test1根目录下的脚本程序test.py,该程序会在每次执行时自动向本地日志文件追加一条记录,源码如下: fromdatetime import datetime now=datetime.now() f=open('test.log','a') f.write('%s '%now) f.close() Linux在启动时,会自动执行/etc/rc.d目录下的初始化程序,因此我们可以把启动任务放到该目录下,有两种办法: 方案一: 1、因为其中的rc.local是在完成所有初始化之后执行,因此我们可以把启动脚本写到里面 2、用root账号登陆Linux,vi /etc/rc.d/rc.local编辑文件,在最后加入两行需要执行的脚本程序: cd /home/test1 --该步不可少,否则会提示没有权限打开'test.log'文件 su test1 -c "python /home/test1/test.py" --把要执行的命令作为一个参数传递级su 方案二: 1、init.d目录下都为可执行程序,他们其实是服务脚本,按照一定格式编写,Linux 在启动时会自动执行,类似Windows下的服务 2、用root帐号登录,vi /etc/rc.d/init.d/mystart,追加如下内容: #!/bin/bash #chkconfig:2345 80 05 --指定在哪几个级别执行,0一般指关机, 6指的是重启,其他为正常启动。80为启动的优先级,05为关闭的优先机 #description:mystart service RETVAL=0 start(){ --启动服务的入口函数 echo -n "mystartserive ..." cd /home/test1 su test1 -c "python /home/test1/test.py" }

启动过程以及各个脚本的作用

开机自检-----MBR引导-----GRUB菜单------加载内核-----允许init进程 -----读取inittab(该文件中有运行级别,初始化文件,某个运行级别所要读取的文件,然后就执行/etc/rc.d/rcn.d向对应的文件) ----/etc/rc.d/rc.sysinit(由init进程调用执行,完成设置网络主机名加载文件系统等初始化工作------/etc/rc.d/rc(由init进程调用执行,根据指定的运行级别加载或终止相应的系统服务)------/etc/rc.d/rc.nd(是个目录,目录中有级别关闭和开启的服务K S 后的数字表示启动或关闭服务的优先级,越小越好----执行/etc/rc.d/rc.local(由rc脚本执行调用,保存用户定义的所需开机后自动执行的命令,可以开启某些服务,但是却不能关闭服务,因为关机时不读取该脚本,是最后读取的文件) -----启动mingetty(启动一个虚拟终端) init进程和inittab引导指令 init进程是系统所有进程的起点,内核在完成核内引导以后,即在本线程(进程)空间内加载init程序,它的进程号是1。 init程序需要读取/etc/inittab文件作为其行为指针,inittab是以行为单位的描述性(非执行性)文本,每一个指令行都具有以下格式: id:runlevel:action:process其中id为入口标识符,runlevel为运行级别,action为动作代号,process为具体的执行程序。 id一般要求4个字符以内,对于getty或其他login程序项,要求id与tty的编号相同,否则getty程序将不能正常工作。 runlevel是init所处于的运行级别的标识,一般使用0-6以及S或s。0、1、6运行级别被系统保留,0作为shutdown动作,1作为重启至单用户模式,6为重启;S和s意义相同,表示单用户模式,且无需inittab文件,因此也不在inittab中出现,实际上,进入单用户模式时,init直接在控制台(/dev/console)上运行/sbin/sulogin。 在一般的系统实现中,都使用了2、3、4、5几个级别,在Redhat系统中,2表示无NFS支持的多用户模式,3表示完全多用户模式(也是最常用的级别),4保留给用户自定义,5表示XDM图形登录方式。7-9级别也是可以使用的,传统的Unix系统没有定义这几个级别。runlevel可以是并列的多个值,以匹配多个运行级别,对大多数action来说,仅当runlevel与当前运行级别匹配成功才会执行。 initdefault是一个特殊的action值,用于标识缺省的启动级别;当init由核心激活以后,它将读取inittab中的initdefault项,取得其中的runlevel,并作为当前的运行级别。如果没有inittab文件,或者其中没有initdefault 项,init将在控制台上请求输入 runlevel。

如何设置开机启动项

如何设置开机启动项 开机速度有点慢,可能是随Windows启动项有点多的缘故,运行msconfig,就可以看到电脑启动时加载的程序。下面是一些常用的系统程序和应用程序。如果你的电脑中有一些来路不明的启动项,就得考虑是否中毒或者中了木马。 启动项中除了杀毒软件和输入法(cftmon不可关闭否则你就不会在任务栏看语言栏了)外,其它的都可以关闭或者使用者可以根据自己的需要自由地选择取舍。其实关闭并不是删除,只是开机时不运行罢了。你若想运行可以从程序菜单中打开。 1.系统常见的启动项: ctfmon.exe------------是Microsoft Office产品套装的一部分。它可以选择用户文字输入程序和微软Office XP语言条。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。输入法会出现在屏幕右下角,建议不删。 NvCpl -------------是显卡桌面管理调节程序; nvcpl.dll------------是NVIDIA显示卡相关动态链接库文件。可以停用; nvmctray - nvmctray.dll -------DLL文件信息是显示卡相关文件。 internat.exe ------------输入法指示器程序 LoadPowerProfile---------Win98/Me电源管理 PCHealth ------------WinMe系统自愈功能 ScanRegistry -----------启动时检查并备份注册表 SchedulingAgent ---------系统计划任务程序 Synchronization Manager------Win2000同步管理 SystemTray-----------系统托盘,管理内存驻留程序 Taskbar Display Controls -----屏幕-属性-设置-高级-在任务栏中显示图标 TaskMonitor -----------任务检测程序,记录使用软件情况 *StateMgr ----------WinMe系统还原 msmsgs Windows Messenger ---是微软公司推出的一个在线聊天和即时通讯客户端。 Rundll32 cmicnfg---------是32位的链接库,使电脑能运行..dll类型的文件,建议不要禁用;

linux下通过脚本实现自动重启程序.doc

linux下通过脚本实现自动重启程序 linux下通过脚本实现自动重启程序 自动重启故障相信大家都遇到过,原因也有很多,跟系统,硬件或者外界因素都有关,但是在Linux中可没有那么简单。这里集中讨论linux实现自动重启程序的方法。下面一起看看! 自动重启脚本 假定需要实现重启的程序名为test ,我们这里通过判断进程数目来判断程序是否正常。 ps -ef | grep $1 | grep -v grep | wc l 是获取$1(本例中为test)的进程数,脚本根据进程数来决定下一步的操作。通过一个死循环,每隔1秒检查一次系统中的指定程序的进程数。 代码如下: 脚本check #!/bin/sh #-----------------------------------# 函数: CheckProcess# 功能: 检查一个进程是否存在# 参数: $1 --- 要检查的进程名称# 返回: 如果存在返回0, 否则返回1.#---------------------------------------CheckProcess(){ # 检查输入的

参数是否有效if [ $1 = ]; then return 1 fi #$PROCESS_NUM获取指定进程名的数目,为1返回0,表示正常,不为1返回1,表示有错误,需要重新启动PROCESS_NUM=`ps -ef | grep $1 | grep -v grep | wc -l` if [ $PROCESS_NUM -eq 1 ]; then return 0 else return 1 fi} # 检查test实例是否已经存在while [ 1 ] ; do CheckProcess test CheckQQ_RET=$? if [ $CheckQQ_RET -eq 1 ]; then# 杀死所有test进程,可换任意你需要执行的操作killall -9 test exec ./test fi sleep 1done 脚本start: 加入limit coredumpsize 102400,设置core file的大小,一旦程序Core Dump,有迹可寻。在该脚本中后台执行check脚本,可以省去很多麻烦, #!/bin/cshlimit coredumpsize 102400 ./check 补充:电脑总是自动重启怎么办 1、右击我的电脑,选择属性项。 2、在打开的系统属性窗口中选择高级系统设置项进入。

如何设置U盘启动 设置电脑开机从U盘启动方法

如何设置U盘启动设置电脑开机从U盘启动方法 在今天的上文中,我们为大家介绍了如何制作U盘启动盘,U盘启动盘制作好,并且将系统镜像文件放入到U盘之后,接下来就需要重启电脑,设置电脑开机启动项为从U盘启动了,之后就是最后的系统安装了。由于设置U盘启动,不同主板方法有所不同,因此本文才专文为大家介绍设置电脑开机从U盘启动方法,如果您也还不懂,那么赶紧往下阅读吧。 如果你感觉到设置BIOS比较麻烦困难,根据你的电脑类型,在将制作好的U盘系统插入电脑后,然后使用电脑开启启动项热键快捷键直接启动一键U盘装系统,由于不同品牌主板与品牌笔记本设置方法有所不一样,以下我们汇总了各品牌主板与笔记本热键进入开机启动项设置的方法,如下图: 除了以上快捷方法外,我们还可以通过我们最常见的设置BIOS方式,由于BIOS默认是从硬盘启动,因此我们首先需要设置开机启动项为从U盘启动,同样由于不同品牌主板BIOS内部界面设置有些不相同,以下电脑百事网编辑为大家整理了各品牌主板BIOS设置为U盘启动的方法,详情如下:

1、Phoenix – AwardBIOS主板(适合2010年之后的主流主板): 开机按Del键进入该BIOS设置界面,选择高级BIOS设置Advanced BIOS Features,如下图,之后进入如下图界面: 如上图,在高级BIOS设置(Advanced BIOS Features)界面里,首先点击(硬盘启动优先级)Hard Disk Boot Priority,之后即可进入BIOS开机启动项优先级选择,我们可以通

过键盘上的上下键选择USB-HDD(U盘即可,会自动识别我们插入电脑中的U盘),如下图: 如上图,选择USB设备为第一启动项后,按Entel键即可确认选择,之后我们再按F10键,然后会弹出是否保存,选择YES即可。 另外有的主板还会进入如下界面,我们主要将First Boot Device这只为U盘即可,如下图。

debian linux系统开机启动项管理

Debian linux系统开机启动项的管理 Table of Contents 1. 关于LINUX 的启动 (2) 1.1 LINUX的关键启动脚本 (2) 1.2 LINUX启动SHELL脚本的一般书写规则 (3) 1.3开机启动的其他方法 (4)

1. 关于linux 的启动 1.1 linux的关键启动脚本 Linux的第一个进程是0号进程,一般认为0号进程创建了1号进程,1号进程建了所有的kernel进程,1号进程是所有进程的祖先。1号进程又称init进程,init进程是所有进程之父。 init读取/etc/inittab,以下是debian系统的inittab,init就是读取这个文件获取的第一个脚本,请注意里面的粗体字,会对您理解linux的运行有一定的帮助。 # /etc/inittab: init(8) configuration. # $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ # The default runlevel. 默认的运行等级2 是多用户形式,这个数字也可以是1获其他的数字,关于运行等级,请见下文。在终端下,直接执行runlevel看到当前系统的默认运行等级。 id:2:initdefault: # Boot-time system configuration/initialization script. # This is run first except when booting in emergency (-b) mode. 下面的命令是第一个执行的,除非是在紧急模式下启动。 可以看到,第一个运行的程序是/etc/init.d/rcS,也就是说rcS就是我们系统的初始化脚本。rcS是系统的初始化脚本,而在rcS文件中,直接执行了rc程序,在rc程序中,会执行当前系统默认运行等级下的所有要运行的脚本,这些脚本存放在rc?.d文件夹中(“?”是一个数字,运行等级是2的话就是rc2.d文件夹),在rc?.d文件夹中是以{K或S}{num}{name}命名的链接,这些链接至/etc/init.d/文件夹下的脚本,如果是K,那么意味着向/etc/init.d/下对应name的脚本传入stop 参数,如果是S开头的链接,意味着传入start参数 si::sysinit:/etc/init.d/rcS …到此,和我们的开机启动关系密切的代码已经结束了,当然,不排除在用户登录之后有针对用户的开机启动项目 # What to do in single-user mode. ~~:S:wait:/sbin/sulogin …

开机启动项怎么设置

开机启动项怎么设置 开机启动项设置教程如下: 方法一:最简单最原始的方法,使用开机启动命令 在开始--运行--输入:msconfig 命令,进入如下系统配置界面: 启动项中除了杀毒软件和输入法(cftmon不可关闭否则就不会在任务栏看语言栏了)外,其它的都可以关闭或者使用者可以根据自己的需要自由地选择取舍。其实关闭并不是删除,只是开机时不运行罢了。你若想运行可以从程序菜单中打开。 不同电脑可能安装的程序不一样,所以所看到的程序或许不一一样,以下总结了一些系统常见启动项。 ctfmon.exe----是Microsoft Office产品套装的一部分。它可以选择用户文字输入程序和微软Office XP语言条。这不是纯粹的系统程序,但是如果终止它,可能会导致不可知的问题。输入法会出现在屏幕右下角,建议不删。 Nv Cpl ------是显卡桌面管理调节程序;

nv cpl.dll---------- 是NVIDIA显示卡相关动态链接库文件。可以停用; nvmctray - nvmctray.dll ------- DLL文件信息是显示卡相关文件。 internat.exe ----------输入法指示器程序 LoadPowerProfile------- Win98/Me电源管理 PCHealth ----------- WinMe系统自愈功能 ScanRegistry ---------启动时检查并备份注册表 SchedulingAgent ------- 系统计划任务程序 Synchronization Manager---- Win2000同步管理 SystemTray----------系统托盘,管理内存驻留程序 Taskbar Display Controls ----屏幕-属性-设置-高级-在任务栏中显示图标 TaskMonitor ---------任务检测程序,记录使用软件情况 *StateMgr ---------- WinMe系统还原 msmsgs Windows Messenger -是微软公司推出的一个在线聊天和即时通讯客户端。 Rundll32 cmicnfg-------是32位的链接库,使电脑能运行..dll类型的文件,建议不要禁用; soundman.exe------是Realtek声卡相关程序。该进程在系统托盘驻留,用于进行快速访问和诊断。可关掉. igfxtray.exe ------- 是intel显卡配置和诊断程序,会在安装intel 810芯片组的集成显卡驱动时一起安装。关掉试试. hkcmd.exe-----此进程是主板上集成显卡的一个驱动控制台文件,常和igfxtray.exe 一起出现,如intel865G芯片集成的显卡。但该命令常会被黑客或木马利用,需要注意。可以禁用,不是病毒,但可能被病毒替代。 nwiz.exe--------是NVIDIA nView控制面板在NVIDA显卡驱动中被安装,用于调整和设定。可停用.;

linux(凝思) 网卡绑定方法

linux系统里面有一个内置的nameif的命令可以实现网卡绑定的功能 方法:可以写一个脚本,然后将脚本设置为开机启动即可。 参考如下: (1) 首先写一个脚本,脚本路径为/etc/rc.d/init.d,脚本内容如下(针对两块网卡): #cat /etc/rc.d/init.d/nameif.sh #!/bin/sh /sbin/nameif -s a0 00:E0:81:D3:30:74 /sbin/nameif -s a1 00:E0:81:D3:30:76 /sbin/nameif -s eth0 00:E0:81:D3:30:74 /sbin/nameif -s eth1 00:E0:81:D3:30:76 注释:此处的MAC为举例用的,应根据自己机器的实际情况来编写脚本。 (2) 写完脚本后,给脚本加权限 chmod 777 /etc/rc.d/init.d/nameif.sh (3) 然后在对应的启动级别里做一个开机启动的连接,注意,nameif脚本需要执行在 network网络启动之前,否则无法生效 #cd /etc/rc.d/rc3.d #ln -s /etc/rc.d/init.d/nameif.sh S016nameif #cd /etc/rc.d/rc5.d #ln -s /etc/rc.d/init.d/nameif.sh S016nameif 注释:由于内核里面事先记录了eth[0-1*]的网卡名字信息,若直接对eth*进行绑定的话,会存在网卡名字占用的问题,由此会造成设置无法生效。所有上面所写的脚本里面首先将网卡的MAC地址赋给其他的名字,然后在重新指定给eth*,即可解决这个问题

怎么添加或删除开机启动项

今天我下载了个桌面动画挺好的,桌面不再是一个单调的图片,而成了一个动画,比如说雪花,看着桌面上下着雪花这样的感觉真好。但是接着我发现了一个问题,这种动画是一个应用程序,开机的时候无法自动启动,还要你自己启动这种动画,这样就达不到了预期的效果了。然后我又查看了360上的开机启动项,开机启动项里也并没有这种程序,这该肿么办呢??找了半天也找不到怎么添加开机启动项,后来我找到了一种方法。 先说删除启动项,有些流氓网页,音乐之类的,开机自动启动。360启动项中也没有,那么就这样去删除。 1、删除 开始——运行——输入msconfig——(选择)启动,然后将不需要的启动 项都禁止然后重启。 这样在重启过程中,系统必需的启动项会正常启动,那些不是必需的就不会启动。 2、增加 最简单也最直观的方法是使用开始菜单的启动项,把你想要启动的程序建立一个快捷方式,将此快捷方式放置到开始--程序--启动里面即可。但是这样只是添加了用户下的启动项,如果是用其他用户登录就无效。 如果你确实想利用注册表,那么, 开始——运行——(输入)regedit 进入注册表编辑器后。有两个地方有启动项, 一个是用户的(位于HKEY_CURRENT_USER下), 一个是系统的(位于HKEY_LOCAL-MACHINEE下), 用户的只对当前用户有效,系统的对所有用户有效。 以用户的为例,点击 HKEY_CURRENT_USER——Software——Microsoft——Windows——CurrentVersion——(双击)Run 右面栏内显示所有启动项,要想增加启动项,在右边的空白区域单击右键——新建字符串值,取个名字,双击刚才新建的项目,为其赋值,值就是你要启动的软件的路径,如:C:\Program Files\360\360safe\360safe.exe。 如果是系统启动项,则 HKEY_LOCAL-MACHINEE--Software--Microsoft--Windows--CurrentVersion--Run, 另外,还有一个RunOnce也是启动项,只不过它只运行一次。

linux开机启动脚本的顺序

linux开机启动脚本的顺序 如果服务器重启之后需要手工开启许多服务、工作及以后的维护相对比较繁琐、特地总结了下linux下开机自动启动脚本所涉及的知识和方法、如下: 1、相关基础知识点 1)redhat的启动方式和执行次序是: 加载内核 执行init程序 /etc/rc.d/rc.sysinit # 由init执行的第一个脚本 /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式 /etc/rc.d/rc.local #相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中) /sbin/mingetty # 等待用户登录 在Redhat中,/etc/rc.d/rc.sysinit主要做在各个运行模式中相同的初始化工作,包括: 调入keymap以及系统字体 启动swapping 设置主机名 设置NIS域名 检查(fsck)并mount文件系统 打开quota 装载声卡模块 设置系统时钟 等等。 /etc/rc.d/rc则根据其参数指定的运行模式(运行级别,你在inittab文件中可以设置)来执行相应目录下的脚本。凡是以Kxx开头的 ,都以stop为参数来调用;凡是以Sxx开头的,都以start为参数来调用。调用的顺序按xx 从小到大来执行。(其中xx是数字、表示的是启动顺序)例如,假设缺省的运行模式是3,/etc/rc.d/rc就会按上述方式调用 /etc/rc.d/rc3.d/下的脚本。 值得一提的是,Redhat中的运行模式2、3、5都把/etc/rc.d/rc.local做为初始化脚本中 的最后一个,所以用户可以自己在这个文件中添加一些需要在其他初始化工作之后,登录之前执行的命令。 init在等待/etc/rc.d/rc执行完毕之后(因为在/etc/inittab中/etc/rc.d/rc的 action是wait),将在指定的各个虚拟终端上运行/sbin/mingetty,等待用户的登录。 至此,LINUX的启动结束。 2)init运行级别及指令 一、什么是INIT: init是Linux系统操作中不可缺少的程序之一。

Linux系统如何设置开机自动运行脚本

在Windows 下,我们有很多方法可以设置开机启动,但在Linux 系统下我们需要如何操作呢? Linux 下同样可以设置开机启动,但可能需要我们敲一些命令(可能也有 UI 界面的设置方法,但我不熟,我更多是玩命令)。下面我们就介绍三种简单但可行的开机启动设置方法。 方法一:修改/etc/rc.d/rc.local 文件 /etc/rc.d/rc.local 文件会在 Linux 系统各项服务都启动完毕之后再被运行。所以你想要自己的脚本在开机后被运行的话,可以将自己脚本路径加到该文件里。 但是,首先需要确认你有运行这个文件的权限。 $ chmod +x /etc/rc.d/rc.local 为了演示,我们创建了一个脚本,当它被执行之后,将在家目录下写入有特定信息的文件。 $ vim auto_run_script.sh #!/bin/bash date >> /home/alvin/output.txt hostname >> /home/alvin/output.txt 保存退出后,再给它赋予可执行权限: $ chmod +x auto_run_script.sh 然后,我们再将脚本添加到/etc/rc.d/rc.local文件最后一行: $ vim /etc/rc.d/rc.local /home/alvin/auto_run_script.sh 接下来,我们就可以试试效果了。直接重启系统就可以了: $ sudo reboot 重启之后,就会在家目录下看到脚本执行的结果了。 方法二:使用crontab 大家知道,crontab 是 Linux 下的计划任务,当时间达到我们设定的时间时,可以自动触发某些脚本的运行。 我们可以自己设置计划任务时间,然后编写对应的脚本。但是,有个特殊的任务,叫作@reboot,我们其实也可以直接从它的字面意义看出来,这个任务就是在系统重启之后自动运行某个脚本。 那它将运行的是什么脚本呢?我们如何去设置这个脚本呢?我们可以通过crontab -e来设置。 $ crontab -e @reboot /home/alvin/auto_run_script.sh 然后,直接重启即可。运行的效果跟上面类似。 方法三:使用systemd 服务 以上介绍的两种方法,在任何 Linux 系统上都可以使用。但本方法仅适用于systemd系统。如何区分是不是systemd系统?很简单,只需运行ps aux命令,查看pid为1的进程是不是systemd 。 为了实现目的,我们需要创建一个 systemd 启动服务,并把它放置在/etc/systemd/system/目录下。

在linux下设置开机自动启动程序的方法

下面用自启动apache为例; 自启动脚本: /usr/local/apache2/bin; ./apachectl start 文件位于/etc/rc.d/init.d下,名为apached, 注意要可执行. #chmod +x /etc/rc.d/init.d/apached //设置文件的属性为可执行 #ln -s /etc/rc.d/init.d/apached /etc/rc3.d/S90apache //建立软连接,快捷方式 #ln -s /etc/rc.d/init.d/apached /etc/rc0.d/K20apache 在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 at>mailto Roger -s ″Have a lunch″ < plan.txt

Linux下配置jdk+tomcat【附:设置tomcat自动启动,jsvc方式】

Linux下配置jdk+tomcat 操作系统 CentOS5.3 所需软件包 jdk-6u4-linux-i586-rpm.bin apache-tomcat-6.0.29.tar.gz 注意:选择用什么包的时候要注意,jdk包最好选择较高版本,否则tomcat可能无法启动以本文为例,安装tomcat6.0和5.0时,如果用的是jdk1.4版本则tomcat无法启动,而用jdk1.5之后的版本就可以 1、安装JDK 1.安装包拷贝到/home目录下(当然别的目录也可以,个人习惯) 进入安装目录 [root@radius2 ~]#cd /home ---将jdk程序包复制到/usr/local目录下 [root@radius2 home]#cp jdk-6u4-linux-i586-rpm.bin /usr/local ---转到/usr/local目录下 [root@radius2 home]#cd /usr/local 给所有用户添加可执行的权限 [root@radius2 local]#chmod +x jdk-6u4-linux-i586-rpm.bin [root@radius2 local]#./jdk-6u4-linux-i586-rpm.bin ----此时会生成文件jdk-6u4-linux-i586-rpm,同样给所有用户添加可执行的权限 [root@radius2 local]#chmod +x jdk-6u4-linux-i586-rpm 安装程序 [root@radius2 local]#rpm -ivh jdk-6u4-linux-i586-rpm 出现安装协议等,按接受即可。 2.设置环境变量: vi /etc/profile 编辑/etc/profile文件。在文件末尾加入 export JA VA_HOME=/usr/java/jdk1.6.0_23 export PA TH=$JA V A_HOME/bin:$JA V A_HOME/jre/bin:$PATH export CLASSPATH=.:/usr/java/jdk1.6.0_23/lib:/usr/java/jdk1.6.0_23/jre/lib:$CLASSPATH 保存退出后可执行以下命令即时生效 [root@radius2 local]#source /etc/profile 3.检查JDK是否安装成功。 #java -version 如果看到JVM版本及相关信息,即安装成功! 3、安装TOMCAT

相关文档
最新文档