論壇

網站公告

社群伺服器正進行搬移作業中,部份已完成;目前仍缺硬體資源,請參考討論區站務公告及主機近況公告。若有不便之處敬請見諒。
   查看所有帖子


(1) 2 3 4 ... 10326 »


訪客
回覆: 如何截取字符串:除去后四位
Anon:訪客
oldstr='$d98345k'
newstr=${oldstr%????}

Ident: c49af9aebe4a03e8988be53fc8fc5833 | 今天 0:37:50
應用擴展 工具箱


回覆: 請問如何設定一段時間自動登出?
會員四級
註冊日期:
2008/7/14 0:03
來自 螢幕的另一端
所屬群組:
已註冊使用者
等級: 20
HP : 97 / 486
MP : 163 / 2355
EXP: 46
離線
Timor 寫到:
Ubuntu部分,我在家裡是用下列這個來管制幾個小孩使用電腦的時間,非常好用。http://launchpad.net/timekpr


哇~ 沒想到還有這種好東西呀! 先收下來了,感謝!

Ident: b6ad7d99f5dc6c5ff4a2fc96718f4032 | 昨天 23:47:42
_________________
法﹑輪﹑大﹑法﹑好
應用擴展 工具箱


回覆: 關於系統選擇畫面
會員三級
註冊日期:
2008/4/29 1:37
所屬群組:
已註冊使用者
等級: 12
HP : 0 / 278
MP : 57 / 1516
EXP: 13
離線
收下了

感謝hepha~~~

Ident: aaa9103bc95080c9699c7e4f01a1f514 | 昨天 23:29:02
_________________
有人要google wave的邀請函嗎?
我的blog:keep spirit pure
應用擴展 工具箱


訪客
回覆: 如何在tty6中使用VirtualBox掛載一個os並可使用?
Anon:訪客
Ubuntu Linux系统的启动过程
BIOS 自检

启动 GRUB/LILO

运行 Linux 的系统内核

读取系统引导配置文件 /etc/inittab 中的信息运行系统的第一个进程 init

执行系统初始化脚本 /etc/init.d/rcS

根据运行级别(X)配置服务执行 /etc/init.d/rcX.d/[KS]*

终止以“K”开头的服务

启动以“S”开头的服务

运行 getty 等待用户登录

执行系统初始化脚本 /etc/init.d/rcS 时会执行 /etc/init.d/networking 启动网络配置

在执行 /etc/init.d/rcX.d/ 时,若运行级别为 2~5

若安装了Gnome/KDE,还会运行 gdm/kdm

运行脚本 /etc/rc.local 执行本地的其他启动配置

INIT 及其配置文件

INIT 进程是由 Linux 内核引导的,是系统中的第一个进程,是系统其他进程的祖先进程,其进程号(PID)永远为 1。

INIT 进程在运行时将读取系统引导配置文件 /etc/inittab 中的信息。这些信息包括默认的运行级别和由 INIT 启动的进程。



代码:
cat /etc/inittab
# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.
id:2:initdefault:

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin

# What to do when CTRL-ALT-DEL is pressed.
ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now

# Action on special keypress (ALT-UpArrow).
#kb::kbrequest:/bin/echo "Keyboard Request--edit /etc/inittab to let this work."

# What to do when the power fails/returns.
pf::powerwait:/etc/init.d/powerfail start
pn::powerfailnow:/etc/init.d/powerfail now
po::powerokwait:/etc/init.d/powerfail stop

# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
# :::
#
# Note that on most Debian systems tty7 is used by the X Window System,
# so if you want to add more getty's go ahead but skip tty7 if you run X.
#
1:2345:respawn:/sbin/getty 38400 tty1
2:23:respawn:/sbin/getty 38400 tty2
3:23:respawn:/sbin/getty 38400 tty3
4:23:respawn:/sbin/getty 38400 tty4
5:23:respawn:/sbin/getty 38400 tty5
6:23:respawn:/sbin/getty 38400 tty6

# Example how to put a getty on a serial line (for a terminal)
#
#T0:23:respawn:/sbin/getty -L ttyS0 9600 vt100
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

# Example how to put a getty on a modem line.
#
#T3:23:respawn:/sbin/mgetty -x0 -s 57600 ttyS3




以 # 开头的行为注释行

每一行包括如下四个字段(每个字段用“:”间隔):

id : runlevels : action : process

文件 /etc/inittab 的字段说明

id

该字段是各有效行的标识符。对定义 getty 的各行来说,该标识符指定 getty 运行的终端(即设备文件 /dev/tty 之后的数字字符);对其他行来说,除了有长度限制外没有特殊要求,但该字段在整个文件中必须唯一。

runlevels

指定运行级别,各运行级别由单个的数字表示,可以指定多个运行级别,但不能包含任何间隔符。

action

指定运行状态,可以有如下的取值:

initdefault — 指定启动后所进入的运行级别,process 字段将被忽略,默认值为 2

sysinit — 在系统启动时执行初始化

wait — 执行下一个字段指定的命令,并等待其结束再运行其他命令

respawn — 当下一个字段指定的命令结束后,重新运行该命令(如控制台登录程序 getty)

ctrlaltdel — 当按下Ctrl+Alt+Del组合键时执行下一个字段指定的命令

powerwait — 当出现电源错误时执行下一个字段指定的命令,并等待其结束

powerfailnow — 当出现电源错误时执行下一个字段指定的命令,不等待其结束

powerokwait — 当电源恢复时执行下一个字段指定的命令


Ubuntu Linux系统的启动过程 和 debian 还是有点区别的
主要就是ubuntu 没有了 /etc/inittab 这个文件,取而代之的是 /etc/event.d/中的rc-default文件。
ubuntu 从6.10开始逐步用upstart代替原来的sysinit,进行服务进程的管理。也正是从6.10开始,ubuntu的启动过程开始变得有点“变幻莫测”。也没办法,这是正在开发中的upstart不可避免的。为了对原有的init实现向后兼容,upstart可以说是在表象上保留了大部分原来 init的特性,因而目前linux初始化进程名仍然叫init,而改变的核心,乃是Event机制。理解并讲清楚这个改变的重要意义和内在机理可不是件容易的事,所以我只打算研究一下目前upstart(0.3.9, ubuntu 8.04)在系统启动中的表象行为。[注:据Scott James Remnant在其博客上所说,upstart 0.5.0版本将在未来几周发布。]

关于系统启动,熟悉Linux的人大多应该知道,init进程(PID=1)乃是所有进程的父进程,所有进程由它控制。init进程的运行时间是内核完成文件系统的加载后。那么init进程是如何开启系统中的其它进程的呢?在阐述这个问题之前,大致地说明一下目前ubuntu中与init相关的几个目录和应用程序,可以方便后面的论述。这些目录和程序包括:

init
telinit
runlevel
/etc/event.d/
/etc/init.d/
/etc/rcX.d/

前三个是应用程序(注意哦,它们都不是shell脚本),可以理解为是由内核调用的。关于它们的功能,从manpage查看就可以了。我们的重点是后面给出的三个目录。

首先是/etc/event.d/目录,这是upstart的核心,upstart不同于原有的init的地方就在于它引入了event机制。Event机制通俗的讲就是将所有进程的触发、停止等等都看作event(事件)。/etc/event.d/中就存放了目前upstart需要识别的event。这其中主要有三种rc-default, rcX(x=0,1,...6,S)以及ttyX。这rc-default就类似于那大名鼎鼎的inittab文件,它就是设置默认运行级别的 [注:upstart中实际并没有运行级别的概念,这么称呼是为了init向后的兼容性]。现在你应该知道了ubuntu里没有了inittab文件后该到哪里设置默认运行级别的了吧!cat rc-default一下吧!rcX文件是发生相应运行级别事件(可以注意到event这个词在upstart里真是无处不见啊)时,需要运行程序的脚本,而ttyX则是设置伪终端数目的,也就是你Ctrl+Alt+F(1~6)调出的那个Console。我们以rc2为例,cat rc2:

start on runlevel 2
stop on runlevel [!2]
console output
script
set $(runlevel --set 2 || true)
if [ "$1" != "unknown" ]; then
PREVLEVEL=$1
RUNLEVEL=$2
export PREVLEVEL RUNLEVEL
fi
exec /etc/init.d/rc 2
end script

不去考虑细节,只要注意到前两行和倒数第二行就可以了。可以看到,rc2文件是定义在发生运行级别2的时候所要执行的东西,核心就是这句:exec /etc/init.d/rc 2。这样,我们就可以自然地过渡到下一个重要的目录,/etc/init.d/了。

你可以ls /etc/init.d/看一下里面的内容,对它有个大致的了解。/etc/init.d/中存放的是服务(services)或者任务(tasks)的执行脚本。可以这么说,只要你安装了一个程序(特别是服务程序daemon),它可以在系统启动的时候运行,那么它必定会在/etc/init.d/中有一个脚本文件。我们还回到上面的rc2文件,它执行了一个exec /etc/init.d/rc 2的命令。也就是说,给/etc/init.d/rc脚本传递了一个参数"2",让它执行。我们仔细查看一下rc脚本(很长,耐心点),能看到这样的一段:

# Now run the START scripts for this runlevel.
# Run all scripts with the same level in parallel
.......
for s in /etc/rc$runlevel.d/S*
.......

这说明,当给rc脚本传递一个数字参数"X"的时候,它在经过一系列的设置后,将会开始执行/etc/rcX.d/下S开头的脚本。这就过渡到下一个目录/etc/rcX.d/了。

进入/etc/rcX.d/,ls -l /etc/rcX.d/看看有些什么内容?哈哈,没错,都是一些到/etc/init.d/中脚本的符号链接。不同的是它们的开头加上了S和一个数字。熟悉原本init的人应该知道,S表示在启动时运行,数字则表示执行的先后顺序。

这样一来,upstart管理的ubuntu启动过程应该就清楚了。梳理一下:

1,内核启动init

2,init找到/etc/event.d/rc-default文件,确定默认的运行级别(X)

3,触发相应的runlevel事件,开始运行/etc/event.d/rcX

4,rcX运行/etc/init.d/rc,传入参数X

5,/etc/init.d/rc脚本进行一系列设置,最后运行相应的/etc/rcX.d/中的脚本

6,/etc/rcX.d/中的脚本按事先设定的优先级依次启动,直至最后给出登录画面(启动X服务器和GDM)

理解了这些,手动配置开机服务的启动与否就很简单了。Ubutnu默认的启动级别是2,不想启动的程序,只要把相应的符号链接从/etc/rc2.d/中删去即可。

Ident: f8ff5f83c529a9029475a8f10ea7b716 | 昨天 23:20:45
應用擴展 工具箱


回覆: 請問如何設定一段時間自動登出?
會員三級
註冊日期:
2008/5/14 10:48
來自 台北縣三芝鄉
所屬群組:
已註冊使用者
等級: 15
HP : 0 / 359
MP : 90 / 1914
EXP: 37
離線
Timor 寫到:
Ubuntu部分,我在家裡是用下列這個來管制幾個小孩使用電腦的時間,非常好用。http://launchpad.net/timekpr

因為一些網站非得使用IE不可,所以仍舊要用微x,而在微x底下,我則是購買家長上網控制軟體, 而且xp買過一次, Win7還要再買一次(因為不支援Win7)。真是暈。


OK,有空就來試試timekpr,謝謝您的介紹。

Ident: 08e0e2606391c5ccb0d42b2285fba6e7 | 昨天 23:08:27
_________________
處理器:Intel Q9300
主機板:GIGABYTE GA-EP35-DS3
記憶體:A-DATA PC-DDR2 800 2GB*2
硬 碟:WD5000AAKS
光碟機:PIONEER DVR-213LS
顯示卡:MSI NX8500GT-TD512E
顯示器:CHIMEI CMV 221A
鍵&鼠:Logitech EX110
系 統:Ubuntu 8.10 & 9.04 AMD64
    Windows XP SP3
    Windows Vista SP2
------------------------------------------------------------
玩Ubuntu真的需要有個電腦功力不錯的朋友陪在您身旁。
不然只好上網、翻書......看有字天書囉!跨故馬西哩椰啦。
應用擴展 工具箱


自動啟動
回覆: 如何在tty6中使用VirtualBox掛載一個os並可使用?
Anon:自動啟動
訪客 寫到:
Ubuntu可以有兩個、四個或是更多桌面,只要按螢幕右下角就可以切換了。不過,這裡指的是同時有兩個或多個使用者登入不同的桌面系統。Ubuntu提供了User Switcher應用程式,並已整合在螢幕右上角的關機圖示,Ubuntu Power Icon可以用來登出、切換使用者、關機。乍看之下十分方便,若是有快捷鍵豈不是更好。

首先當然是增加一個使用者,先按Ctrl+Alt+F1進入虛擬平臺(終端機不適用),以新使用者登入,然後鍵入

$ startx -- :1

系統會為新的使用者開啟一個新的圖形介面桌面。要切換回原來使用者的桌面,則按Ctrl+Alt+F7;要再切換回新的使用者,則按Ctrl+Alt+F9。

如果要增加第三個使用者,則回到虛擬平臺,以第三個使用者登入,然後鍵入

$ startx -- :2

系統會為第三個使用者再開啟一個新的圖形介面桌面。切換至原來使用者和第二個使用者的方法同上,切換至第三個使用者的快捷鍵為Ctrl+Alt+F10。
使開機程序腳本兩路(多路)並行:

1. 可以讓雙核心以上的電腦兩路或多路並行,充分運用多核心處理器所帶來的效能提升,並減少每次開機的時間。
2. 用gedit開啟相關的設定檔:(開啟終端機貼上以下指令)

gksu gedit /etc/init.d/rc

Ident: f8ff5f83c529a9029475a8f10ea7b716 | 昨天 23:01:33
應用擴展 工具箱


訪客
回覆: 如何在tty6中使用VirtualBox掛載一個os並可使用?
Anon:訪客
Ubuntu可以有兩個、四個或是更多桌面,只要按螢幕右下角就可以切換了。不過,這裡指的是同時有兩個或多個使用者登入不同的桌面系統。Ubuntu提供了User Switcher應用程式,並已整合在螢幕右上角的關機圖示,Ubuntu Power Icon可以用來登出、切換使用者、關機。乍看之下十分方便,若是有快捷鍵豈不是更好。

首先當然是增加一個使用者,先按Ctrl+Alt+F1進入虛擬平臺(終端機不適用),以新使用者登入,然後鍵入

$ startx -- :1

系統會為新的使用者開啟一個新的圖形介面桌面。要切換回原來使用者的桌面,則按Ctrl+Alt+F7;要再切換回新的使用者,則按Ctrl+Alt+F9。

如果要增加第三個使用者,則回到虛擬平臺,以第三個使用者登入,然後鍵入

$ startx -- :2

系統會為第三個使用者再開啟一個新的圖形介面桌面。切換至原來使用者和第二個使用者的方法同上,切換至第三個使用者的快捷鍵為Ctrl+Alt+F10。

Ident: f8ff5f83c529a9029475a8f10ea7b716 | 昨天 22:40:36
應用擴展 工具箱


回覆: 關於系統選擇畫面
版主
註冊日期:
2008/5/13 23:12
來自 臺灣民國高雄縣
所屬群組:
已註冊使用者
討論區管理群
等級: 11
HP : 0 / 268
MP : 53 / 1431
EXP: 74
離線
這個問題之前就有人問過嚕!該討論串也已經被收錄近本論壇的精華區了,敬請參考下面這個連結:

http://www.ubuntu-tw.org/modules/newbb/viewtopic.php?topic_id=16948&forum=2

Ident: 4761cdcb98ebf42dfefd3bee7d9cc406 | 昨天 22:39:23
_________________
The owl of Minerva spreads its wings only with the falling of the dusk.

--- G.W.F. Hegel (1770 - 1831)
應用擴展 工具箱


回覆: [轉貼] Avidemux 與 MKVtoolnix 簡易入門
會員一級
註冊日期:
3/9 17:23:57
所屬群組:
已註冊使用者
等級: 1
HP : 1 / 2
MP : 0 / 0
EXP: 10
離線
我是用Qt Creater !!
之前有用過部分功能~
是否可以貼連結給我~

Ident: c279c619d109c40a8e6bd1ad79b75e27 | 昨天 22:36:57
應用擴展 工具箱


回覆: why i cant use lazy script in Ubuntu 9.10??
會員一級
註冊日期:
昨天 22:32:01
所屬群組:
已註冊使用者
等級: 1
HP : 0 / 0
MP : 0 / 0
EXP: 2
離線
You must change the language to Chinese (TW) ...

Ident: cda832985dfee8a67119ff39f3052f93 | 昨天 22:33:03
應用擴展 工具箱



(1) 2 3 4 ... 10326 »