ubuntu 启动管理?ubuntu开机自启动程序
大家好,今天给各位分享ubuntu 启动管理的一些知识,其中也会对ubuntu开机自启动程序进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!
如何在 Ubuntu 中管理开机启动应用
在 Ubuntu中管理开机启动应用
默认情况下, Ubuntu提供了一个Startup Applications工具来供你使用,你不必再进行安装。只需到 Unity面板中就可以查找到该工具。
在 ubuntu中的开机启动应用工具
点击它来启动。下面是我的Startup Applications的样子:
在 Ubuntu中查看开机启动程序
在 Ubuntu中移除开机启动应用
现在由你来发现哪个程序对你用处不大,对我来说,是 Caribou这个软件,它是一个屏幕键盘程序,在开机时它并没有什么用处,所以我想将它移除出开机启动程序的列表中。
你可以选择阻止某个程序在开机时启动,而在开机启动程序列表中保留该选项以便以后再进行激活。点击关闭按钮来保留你的偏好设置。
在 Ubuntu中移除开机启动程序
要将一个程序从开机启动程序列表中移除,选择对应的选项然后从窗口右边的面板中点击移除按钮来保留你的偏好设置。
在 Ubuntu中将程序从开机启动列表中移除
需要提醒的是,这并不会将该程序卸载掉,只是让该程序不再在每次开机时自动启动。你可以对所有你不喜欢的程序做类似的处理。
让开机启动程序延迟启动
若你并不想在开机启动列表中移除掉程序,但同时又忧虑着系统性能的问题,那么你所需要做的是给程序添加一个延迟启动命令,这样所有的程序就不会在开机时同时启动。
选择一个程序然后点击编辑按钮。
编辑开机启动应用列表
这将展示出运行这个特定的程序所需的命令。
在开机启动列表的程序运行所需的命令
所有你需要做的就是在程序运行命令前添加一句 sleep XX;。这样就为实际运行该命令来启动的对应程序添加了 XX秒的延迟。例如,假如我想让 Variety壁纸管理应用延迟启动 2分钟,我就需要像下面那样在命令前添加 sleep 120;
在 Ubuntu中延迟开机启动的程序
保存并关闭设置。你将在下一次启动时看到效果。
增添一个程序到开机启动应用列表中
这对于新手来说需要一点技巧。我们知道,在 Linux的底层都是一些命令,在上一节我们看到这些开机启动程序只是在每次开机时运行一些命令。假如你想在开机启动列表中添加一个新的程序,你需要知道运行该应用所需的命令。
第 1步:如何查找运行一个程序所需的命令?
首先来到 Unity Dash面板然后搜索 Main Menu:
Ubuntu下的程序菜单
这将展示出在各种类别下你安装的所有程序。在 Ubuntu的低版本中,你将看到一个相似的菜单,通过它来选择并运行应用。
Ubuntu下的 main menu
在各种类别下找到你找寻的应用,然后点击属性按钮来查看运行该应用所需的命令。例如,我想在开机时运行 Transmission Torrent客户端。
在 Ubuntu下查找运行程序所需的命令
这就会向我给出运行 Transmission应用的命令:
在 Ubuntu下查找运行某个程序所需的命令
接着,我将用相同的信息来将 Transmission应用添加到开机启动列表中。
第 2步:添加一个程序到开机启动列表中
再次来到开机启动应用工具中并点击添加按钮。这将让你输入一个应用的名称,对应的命令和相关的描述。其中命令最为重要,你可以使用任何你想用的名称和描述。使用上一步得到的命令然后点击添加按钮。
在 Ubuntu中添加一个开机启动程序
就这样,你将在下一次开机时看到这个程序会自动运行。这就是在 Ubuntu中你能做的关于开机启动应用的所有事情。
到现在为止,我们已经讨论在开机时可见到的应用,但仍有更多的服务,守护进程和程序并不在开机启动应用工具中可见。下一节中,我们将看到如何在 Ubuntu中查看这些隐藏的开机启动程序。
在 Ubuntu中查看隐藏的开机启动程序
要查看在开机时哪些服务在运行,可以打开一个终端并使用下面的命令:
sudo sed-i's/NoDisplay=true/NoDisplay=false/g'/etc/xdg/autostart/*.desktop
上面的命令是一个快速查找和替换命令,它将在所有自动启动的程序里的 NoDisplay=false改为 NoDisplay=true,一旦执行了这个命令后,再次打开开机启动应用工具,现在你应该可以看到更多的程序:
在 Ubuntu中查看隐藏的开机启动程序
你可以像先前我们讨论的那样管理这些开机启动应用。我希望这篇教程可以帮助你在 Ubuntu中控制开机启动程序
chkconfig ubuntu 系统服务设置命令
安装命令:
sudo apt-get install chkconfig
(可以用sysv-rc-conf代替)
功能说明:检查、设定系统的各种服务。
语法:chkconfig [--add][--del][--list][系统服务]或
chkconfig [--level等级代号][系统服务][on/off/reset]
补充说明:这个是redhat公司遵循gpl规则所开发的程序,它可以查询操作系统在每一个执行等级(runlevel)中,会执行哪些系统服务,其中包括各种daemon。
linux os将操作环境分为以下7个等级:
0:开机(请不要切换到此等级)
1:单人使用者模式的文字界面
2:多人使用者模式的文字界面,不具有网络档案系统(NFS)功能
3:多人使用者模式的文字界面,具有网络档案系统(NFS)功能
4:某些发行版的linux使用此等级进入x windows system
5:某些发行版的linux使用此等级进入x windows system
6:重新启动
参数:--add新增所指定的系统服务
--del删除所指定的系统服务
--level指定该系统服务要在哪个执行等级中开启或关闭
--list列出当前可从chkconfig指令管理的所有系统服务和等级代号
on/off/reset在指定的执行登记,开启/关闭/重置该系统服务
chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息。谨记chkconfig不是立即自动禁止或激活一个服务,它只是简单的改变了符号连接。
语法:
chkconfig--list [name]
chkconfig--add name
chkconfig--del name
chkconfig [--level levels] name on|off|reset
chkconfig [--level levels] name
chkconfig没有参数运行时,显示用法。如果加上服务名,那么就检查这个服务是否在当前运行级启动。如果是,返回true,否则返回false。如果在服务名后面指定了on,off或者reset,那么chkconfi会改变指定服务的启动信息。on和off分别指服务被启动和停止,reset指重置服务的启动信息,无论有问题的初始化脚本指定了什么。on和off开关,系统默认只对运行级3,4,5有效,但是reset可以对所有运行级有效。
--level选项可以指定要查看的运行级而不一定是当前运行级。
需要说明的是,对于每个运行级,只能有一个启动脚本或者停止脚本。当切换运行级时,init不会重新启动已经启动的服务,也不会再次去停止已经停止的服务。
chkconfig--list:显示所有运行级系统服务的运行状态信息(on或off)。如果指定了name,那么只显示指定的服务在不同运行级的状态。
chkconfig--add name:增加一项新的服务。chkconfig确保每个运行级有一项启动(S)或者杀死(K)入口。如有缺少,则会从缺省的init脚本自动建立。
chkconfig--del name:删除服务,并把相关符号连接从/etc/rc[0-6].d删除。
chkconfig [--level levels] name on|off|reset:设置某一服务在指定的运行级是被启动,停止还是重置。例如,要在3,4,5运行级停止nfs服务,则命令如下:
chkconfig--level 345 nfs off
运行级文件:
每个被chkconfig管理的服务需要在对应的init.d下的脚本加上两行或者更多行的注释。第一行告诉chkconfig缺省启动的运行级以及启动和停止的优先级。如果某服务缺省不在任何运行级启动,那么使用-代替运行级。第二行对服务进行描述,可以用/跨行注释。
例如,random.init包含三行:
# chkconfig: 2345 20 80
# description: Saves and restores system entropy pool for/
# higher quality random number generation.
附加介绍一下Linux系统的运行级的概念:
Linux中有多种运行级,常见的就是多用户的2,3,4,5,很多人知道5是运行X-Windows的级别,而0就是关机了。运行级的改变可以通过init命令来切换。例如,假设你要维护系统进入单用户状态,那么,可以使用init1来切换。在Linux的运行级的切换过程中,系统会自动寻找对应运行级的目录/etc/rc[0-6].d下的K和S开头的文件,按后面的数字顺序,执行这些脚本。对这些脚本的维护,是很繁琐的一件事情,Linux提供了chkconfig命令用来更新和查询不同运行级上的系统服务。
范例:
1.查看在各种不同的执行等级中,各项服务的状况:
$chkconfig--list
2.列出系统服务vsftpd在各个执行等级的启动情况:
$chkconfig--list vsftpd
3.在执行等级3,5时,关闭vsftpd系统服务:
$chkconfig--level 35 vsftpd off
4.在执行等级2,3,5时,开启 vsftpd系统服务:
$chkconfig--level 235 vsftpd on
5.关闭一些自己不需要的服务-
如果没有打印机:
chkconfig--level 235 cups off
如果没有局域网:
chkconfig--level 235 smb off
如果不需要远程用户登录的:
chkconfig--level 235 sshd off
如果不需要定时任务的:
chkconfig--level 235 crond off
如果不需要添加新硬件的:
chkconfig--level 235 kudzu off
关于Ubuntu 11.10开机启动项
最近装了Ubuntu 10.10,因为之前有Windows 7等系统,所以Ubuntu装上后出现启动菜单,默认Ubuntu启动。网上找了好多修改启动选项的方法,众说纷纭,现在总结如下:
一、能上网情况下的最好方法:安装startupmanager——图形启动项管理器
打开终端输入:sudo apt-get install startupmanager
安装启动管理器
系统——系统管理——启动管理器,选中默认开机操作系统即可。
二、最方便的方法:调整Windows系统的默认启动顺序(不需要修改grub.cfg)
/etc/grub.d目录中的脚本文件的文件名都是以数字开头,这确定了在执行update-grub时各文件内容被执行的顺序。
1.用 sudo nautilus命令,以root权限打开文件浏览器。然后找到30_os-prober这个文件,把 30_os-prober这个文件名的数字30改为05到10之间的数字即可(没多少可选06、07、08、09),比如改为08_os-prober,这样创建出来的grub.cfg内的菜单项,windows的排序就会自动在ubuntu之前;
2.运行 sudo update-grub命令。就可以看到,windows7已经排在了第一个的位置上。
三、网上介绍最多的方法(修改grub.cfg)
用 sudo gedit/boot/grub/grub.cfg命令打开grub.cfg这个文件,
一种方法是并将文件中的 set default="0"中的 0改成对应欲默认启动的操作系统的序号(从0开始)。然后保存;
另一种方法是把Windows对应的启动说明那一段剪切到启动说明段最前面;
用这2种方法都能默认启动Windows,但用修改grub.cfg文件来实现修改默认启动项应注意:当使用update-grub命令或者系统升级、grub升级等,grub.cfg文件将被复原。需要重新修改。
如果懒于每次update-grub之后都要修改grub.cfg文件,则可以进行如下操作:
用 sudo gedit/etc/grub.b/00_header命令打开00_header这个文件,找到 ser default="${GRUB_DEFAULT}"一行,将${GRUB_DEFAULT}换成欲默认启动的操作系统的序号(从0开始),保存,再update-grub。这样每次update-grub之后生成的grub.cfg将自动改成我们想要的样子。
四、如果你在硬盘中同时安装了不同的系统,或者由于Ubuntu更新/安装软件而产生了多个启动项,为了免去每次开机都要选择的麻烦,可以把一些低版本的或是不需要的启动项注释掉,这样开机看起来就没那么乱了。
具体做法:sudo gedit/boot/grub/grub.cfg
然后找到 menuentry...,看准了要去掉的系统启动项,在menuentry这个单词前面加上"#"就然后保存就可以了。注意:至少要留一个,建议保留两个ubuntu的选项,留下最高版本的两个不同类型的,其次再核对类型是不是各自一个:一个是正常的(没有注明“恢复模式”或:“recovery”),另一个是恢复模式的(注明“恢复模式”或:“recovery”)。另外含有Window的项是不能加“#”进行注释的,否则你的就会找不到相关的系统入口了。还有内存测试(menuentry"Memory test.....“),如果希望使用此功能留下一项,个人认为留下选项多的那个入口代表更多功能,但是内存测试的速度也会花更长的时间。
以下贴上本人机器启动项的配置情况,windows是最后一项,装的XP。
---------------------------------------------------------------------------------------
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from/etc/grub.d and settings from/etc/default/grub
#
### BEGIN/etc/grub.d/00_header###
if [-s$prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
set default="2"
if ["${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault{
if [-z"${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function recordfail{
set recordfail=1
if [-n"${have_grubenv}" ]; then if [-z"${boot_once}" ]; then save_env recordfail; fi; fi
}
function load_video{
insmod vbe
insmod vga
}
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
if loadfont/usr/share/grub/unicode.pf2; then
set gfxmode=1280x1024
load_video
insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
set locale_dir=($root)/boot/grub/locale
set lang=zh
insmod gettext
if ["${recordfail}"= 1 ]; then
set timeout=-1
else
set timeout=3
fi
### END/etc/grub.d/00_header###
### BEGIN/etc/grub.d/05_debian_theme###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END/etc/grub.d/05_debian_theme###
### BEGIN/etc/grub.d/10_linux###
#menuentry'Ubuntu, with Linux 2.6.35-22-generic'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
linux/boot/vmlinuz-2.6.35-22-generic root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro vga=775 quiet splash
initrd/boot/initrd.img-2.6.35-22-generic
}
#menuentry'Ubuntu, with Linux 2.6.35-22-generic(recovery mode)'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
echo'Loading Linux 2.6.35-22-generic...'
linux/boot/vmlinuz-2.6.35-22-generic root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro single vga=775
echo'Loading initial ramdisk...'
initrd/boot/initrd.img-2.6.35-22-generic
}
menuentry'Ubuntu, with Linux 2.6.32-25-server'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
linux/boot/vmlinuz-2.6.32-25-server root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro vga=775 quiet splash
initrd/boot/initrd.img-2.6.32-25-server
}
menuentry'Ubuntu, with Linux 2.6.32-25-server(recovery mode)'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
echo'Loading Linux 2.6.32-25-server...'
linux/boot/vmlinuz-2.6.32-25-server root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro single vga=775
echo'Loading initial ramdisk...'
initrd/boot/initrd.img-2.6.32-25-server
}
#menuentry'Ubuntu, with Linux 2.6.32-25-generic'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
linux/boot/vmlinuz-2.6.32-25-generic root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro vga=775 quiet splash
initrd/boot/initrd.img-2.6.32-25-generic
}
#menuentry'Ubuntu, with Linux 2.6.32-25-generic(recovery mode)'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
echo'Loading Linux 2.6.32-25-generic...'
linux/boot/vmlinuz-2.6.32-25-generic root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro single vga=775
echo'Loading initial ramdisk...'
initrd/boot/initrd.img-2.6.32-25-generic
}
#menuentry'Ubuntu, with Linux 2.6.32-25-preempt'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
linux/boot/vmlinuz-2.6.32-25-preempt root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro vga=775 quiet splash
initrd/boot/initrd.img-2.6.32-25-preempt
}
#menuentry'Ubuntu, with Linux 2.6.32-25-preempt(recovery mode)'--class ubuntu--class gnu-linux--class gnu--class os{
recordfail
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
echo'Loading Linux 2.6.32-25-preempt...'
linux/boot/vmlinuz-2.6.32-25-preempt root=UUID=c825786c-e42c-4fed-8cc2-fd2a610a183b ro single vga=775
echo'Loading initial ramdisk...'
initrd/boot/initrd.img-2.6.32-25-preempt
}
### END/etc/grub.d/10_linux###
### BEGIN/etc/grub.d/20_linux_xen###
### END/etc/grub.d/20_linux_xen###
### BEGIN/etc/grub.d/20_memtest86+###
#menuentry"Memory test(memtest86+)"{
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
linux16/boot/memtest86+.bin
}
menuentry"Memory test(memtest86+, serial console 115200)"{
insmod part_msdos
insmod ext2
set root='(hd1,msdos8)'
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
linux16/boot/memtest86+.bin console=ttyS0,115200n8
}
### END/etc/grub.d/20_memtest86+###
### BEGIN/etc/grub.d/30_os-prober###
menuentry"Microsoft Windows XP Professional(on/dev/sda1)"{
insmod part_msdos
insmod ntfs
set root='(hd1,msdos1)'
search--no-floppy--fs-uuid--set 22a89599a8956bd3
drivemap-s(hd0)${root}
chainloader+1
}
### END/etc/grub.d/30_os-prober###
### BEGIN/etc/grub.d/40_custom###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the'exec tail' line above.
### END/etc/grub.d/40_custom###
### BEGIN/etc/grub.d/41_custom###
if [-f$prefix/custom.cfg ]; then
source$prefix/custom.cfg;
fi
### END/etc/grub.d/41_custom###
------------------------------------------------------------------
对以上启动项配置修改的简要说明:
红色语句前面都是加了”#“就是不再显示的启动项,如果以后需要再次重新启用,那么只要能够进入编辑/boot/grub/grub.cfg这个文件,把”#“号去掉就可以了。绿色的项目是保留的启动项,在系统启动时候会显示。万一你对分辨这红和绿这两种颜色有困难的话,可以数一下,启动代码中红色的语句共7句,绿色的3句。
五、关于系统启动时默认等待时间的设置:
Ubuntu默认是显示启动列表10秒以后自动进入第一个显示的启动项。要修改这个启动等待时间也是可以在/boot/grub/grub.cfg这个文件里面修改的,找到以下代码段:
---------------------------------------------------------------
search--no-floppy--fs-uuid--set c825786c-e42c-4fed-8cc2-fd2a610a183b
set locale_dir=($root)/boot/grub/locale
set lang=zh
insmod gettext
if ["${recordfail}"= 1 ]; then
set timeout=-1
else
set timeout=3
fi
--------------------------------------------------------------
修改else语句后面这个”timeout“的值,比如这里是3表示等待3秒后自动进入系统。改为其他值比如5就等待5秒。
如果你不熟悉代码的意思或者怕改错,那么建议你安装一个启动管理器在里面进行可视化设置。这样比较保险。
方法见上述第”一“部分。再帖一下:
打开终端输入:sudo apt-get install startupmanager#需要能上网哦
安装启动管理器
系统——系统管理——启动管理器,选中默认开机操作系统即可。
好了,这个话题就写到这儿了,如果朋友们还有什么疑问欢迎给我留言,或与我交流,只要我知道的一定努力为你解答。
祝你好运!