麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 系統(tǒng) > FreeBSD > 正文

如何在 FreeBSD 下壓 MP3

2024-07-26 00:29:15
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
Dru Lavigne
11/29/2000 

在前面的文章里,我們學(xué)習(xí)了怎么顯示和管理運(yùn)行中的進(jìn)程。今天,我想描述一下那些進(jìn)程實(shí)際上如何啟動(dòng)的。

當(dāng)你啟動(dòng)計(jì)算機(jī)進(jìn)入FreeBSD時(shí)會(huì)有很多巧妙的事情發(fā)生。在此我無(wú)法論及所有的細(xì)節(jié),但FreeBSD handbook極好地解釋了引導(dǎo)過(guò)程。當(dāng)你啟動(dòng)你的計(jì)算機(jī)時(shí),可能會(huì)注意到內(nèi)核對(duì)硬件作了檢測(cè)并在終端上顯示了相應(yīng)的結(jié)果。當(dāng)檢測(cè)結(jié)束時(shí),內(nèi)核會(huì)啟動(dòng)兩個(gè)進(jìn)程:進(jìn)程 0 (swapper)和進(jìn)程 1 (init)。

負(fù)責(zé)進(jìn)程控制初始化的程序是init;沒(méi)有它,其它的進(jìn)程無(wú)法啟動(dòng)。在引導(dǎo)時(shí),init要做兩項(xiàng)重要的工作:首先,它在rc的控制之下裝入啟動(dòng)腳本,然后它初始化終端以便使用戶可以登錄。讓我們分別描述這些功能,從rc開(kāi)始:

whatis rc
rc(8)     - command scripts for auto-reboot and daemon startup
這些腳本實(shí)際位于/etc/rc;通常,位于/etc下的這個(gè)配置文件對(duì)應(yīng)于手冊(cè)的第五部分,所以你可以根據(jù)手冊(cè)對(duì)配置文件作正確地修改。但是,如果你打:

man 5 rc
你卻會(huì)得到以下信息:

No entry for rc in section 5 of the manual
這對(duì)于上面提到的它位于手冊(cè)第八部分來(lái)說(shuō)看起來(lái)有點(diǎn)古怪,因?yàn)檫@部分手冊(cè)包含的是系統(tǒng)維護(hù)和操作命令,通常它們都是后臺(tái)進(jìn)程。讓我們進(jìn)一步來(lái)看一下這個(gè)文件:

more /etc/rc
# System startup script run by init on autoboot
# or after single-user.
# Output and error are redirected to console by init,
# and the console is the controlling terminal.
# Note that almost all of the user-configurable behavior 
# is no longer in # this file, but rather in /etc/defaults/rc.conf.
# Please check that file first before contemplating any changes 
# here.  If you do need to change this file for some reason, we 
# would like to know about it.
好,相當(dāng)清晰;看來(lái)對(duì)于該文件我們自己是不能亂來(lái)的。這里有些相當(dāng)重要的東西對(duì)于正確引導(dǎo)我們的系統(tǒng)所必須的。讓我們往后跳,看一些重要的部分來(lái)找出啟動(dòng)時(shí)實(shí)際上都發(fā)生了些什么。注意當(dāng)在引導(dǎo)過(guò)程中處理rc腳本時(shí),init會(huì)把所有的輸出和錯(cuò)誤信息記錄到終端上。

rc首先做的事之一就是設(shè)置路徑變量,以使它可以找到你FreeBSD系統(tǒng)上的可執(zhí)行程序:

PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin
然后它會(huì)查找/etc/defaults/rc.conf and和/etc/rc.conf這兩個(gè)文件:

# If there is a global system configuration file, suck it in.
if [ -f /etc/defaults/rc.conf ]; then
        . /etc/defaults/rc.conf
elif [ -f /etc/rc.conf ]; then
        . /etc/rc.conf
fi
接著它會(huì)作一個(gè)文件系統(tǒng)連貫性檢查。如果你曾經(jīng)非正常關(guān)閉FreeBSD系統(tǒng),你會(huì)在引導(dǎo)過(guò)程中看到它在這一步上發(fā)出抱怨的。

echo Automatic boot in PRogress...
fsck -p
假定fsck沒(méi)有遇到任何問(wèn)題,它就馬上裝載你的文件系統(tǒng):

# Mount everything except nfs filesystems.
mount -a -t nonfs
在其它任何進(jìn)程啟動(dòng)之前,你的CMOS時(shí)鐘必須調(diào)整為內(nèi)核時(shí)鐘可以理解的形式:

adjkerntz -i
然后整理var目錄,將引導(dǎo)信息寫(xiě)入dmesg.boot:

clean_var() {
if [ ! -f /var/run/clean_var ]; then
rm -rf /var/run/*
find /var/spool/lock ! -type d -delete
rm -rf /var/spool/uucp/.Temp/*
# Keep a copy of the boot messages around
dmesg >/var/run/dmesg.boot
接著rc會(huì)讀取以下文件:

/etc/rc.sysctl
/etc/rc.serial
/etc/rc.pccard
/etc/rc.network
/etc/rc.network6
然后復(fù)位終端權(quán)限:

# Whack the pty perms back into shape.
chflags 0 /dev/tty[pqrsPQRS]*
chmod 666 /dev/tty[pqrsPQRS]*
chown root:wheel /dev/tty[pqrsPQRS]*
并清理自己產(chǎn)生的“垃圾”以及/tmp目錄:

# Clean up left-over files
# Clearing /tmp at boot-time seems to have a long tradition.  It doesn't
# help in any way for long-living systems, and it might accidentally
# clobber files you would rather like to have preserved after a crash
# (if not using mfs /tmp anyway).
# See also the example of another cleanup policy in /etc/periodic/daily.
# Remove X lock files, since they will prevent you from restarting X11
# after a system crash.
現(xiàn)在rc準(zhǔn)備啟動(dòng)一些后臺(tái)進(jìn)程,首先是syslogd和named:

# Start system logging and name service.  Named needs to start before syslogd
# if you don't have a /etc/resolv.conf.
然后是inetd、cron、lpd、sendmail、sshd和usbd:

# Now start up miscellaneous daemons that don't belong anywhere else
接著rc將更新motd(每日信息)并執(zhí)行“uname -m”,這條命令會(huì)在屏幕上顯示構(gòu)架類型。

(/etc/rc文件結(jié)尾)
當(dāng)?shù)竭_(dá)/etc/rc的結(jié)尾時(shí),rc的工作就完成了。在此我們重新回顧一下:init調(diào)用rc腳本,它會(huì)讀取一些全局的和本地的配置文件以正確裝載文件系統(tǒng)并建立系統(tǒng)后臺(tái)進(jìn)程可以啟動(dòng)的環(huán)境。你的操作系統(tǒng)現(xiàn)在已經(jīng)啟動(dòng)并運(yùn)行著,但到此為止,還沒(méi)有一個(gè)用戶可以與操作系統(tǒng)實(shí)際交互的環(huán)境。這就是init第二個(gè)重要的功能。

配置文件/etc/ttys將會(huì)被讀取以決定初始化的終端。不象/etc/rc,該文件可以由超級(jí)用戶經(jīng)常編輯以確保讓init來(lái)初始化所需的終端。

為了理解此文件,我們必須了解在你的FreeBSD系統(tǒng)上有三種類型的終端。以“ttyv”開(kāi)頭后跟一個(gè)數(shù)字的是虛擬終端;它們都是用戶可以獲得的物理存在于FreeBSD系統(tǒng)上的終端。缺省情況下,這些虛擬終端中的第一個(gè),或叫“ttyv0”,表示控制臺(tái)。以“ttyd”開(kāi)頭后跟一個(gè)數(shù)字的是串行線路或撥號(hào)終端;它們是用戶用調(diào)制解調(diào)器遠(yuǎn)程訪問(wèn)你的FreeBSD系統(tǒng)時(shí)可獲得的終端。最后一種終端類型就是偽終端或網(wǎng)絡(luò)終端;它們以“ttyp”開(kāi)頭后跟一個(gè)數(shù)字或字母,用于通過(guò)網(wǎng)絡(luò)連接訪問(wèn)你的FreeBSD系統(tǒng)。

如果我們用以下命令看此文件:

more /etc/ttys
我們會(huì)看到此文件分為三部分,每個(gè)部分分別對(duì)應(yīng)這三種類型的終端。同時(shí)每個(gè)部分還分為四欄,總結(jié)為下面的圖表:

欄名
 含義
 
name
 終端設(shè)備的名稱
 
getty
 在終端上啟動(dòng)運(yùn)行的程序,通常為getty。其它項(xiàng)目包括xdm,它用來(lái)啟動(dòng)X Window系統(tǒng),或none,說(shuō)明沒(méi)有程序。
 
type
 對(duì)于虛擬終端,對(duì)應(yīng)的類型為cons25。其它通常的值包括偽終端network,調(diào)制解調(diào)器入口dialup,以及unknown,用于用戶試圖以無(wú)法預(yù)定的類型進(jìn)行連接的終端。
 
status
 它必須是on或off。如果是on,init將運(yùn)行g(shù)etty欄指定的程序。如果出現(xiàn)單詞“secure”,說(shuō)明該tty允許root登錄;為避免這種情況,可以用單詞“insecure”。
 

讓我們從虛擬終端部分開(kāi)始解釋該文件;可以看到它是以設(shè)置控制臺(tái)開(kāi)始的:

# If console is marked "insecure", then init will ask 
# for the root passWord when going to single-user mode.
console none unknown off secure
如果在引導(dǎo)過(guò)程中fsck命令運(yùn)行出了問(wèn)題,init將使你的FreeBSD系統(tǒng)進(jìn)入單用戶模式以使root用戶可以修復(fù)問(wèn)題。如果你用insecure代替secure來(lái)設(shè)置控制臺(tái),init將在你可以繼續(xù)干之前索取口令。

ttyv0 "/usr/libexec/getty Pc" cons25 on  secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on  secure
ttyv2 "/usr/libexec/getty Pc" cons25 on  secure
ttyv3 "/usr/libexec/getty Pc" cons25 on  secure
ttyv4 "/usr/libexec/getty Pc" cons25 on  secure
ttyv5 "/usr/libexec/getty Pc" cons25 on  secure
ttyv6 "/usr/libexec/getty Pc" cons25 on  secure
ttyv7 "/usr/libexec/getty Pc" cons25 on  secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secure
你可以看到在我的FreeBSD系統(tǒng)上除了控制臺(tái)以外還有八個(gè)虛擬終端;我可以通過(guò)按ALT鍵加一個(gè)控制鍵來(lái)訪問(wèn)每個(gè)終端。例如ALT F1可訪問(wèn)控制臺(tái),ALT F2訪問(wèn)ttyv1, ALT F3訪問(wèn)ttyv2,等等。如果我啟動(dòng)了X會(huì)話,那么它可以用ALT F8來(lái)訪問(wèn)。如果我把ttyv8上的單詞off改為on,那么我可以在引導(dǎo)時(shí)得到一個(gè)X終端而不是控制臺(tái)。然后可以繼續(xù)用我ALT加功能鍵來(lái)訪問(wèn)其它終端。我的所有這些虛擬終端都標(biāo)為“secure”,說(shuō)明它們都可接受root登錄。你可以有多少個(gè)虛擬終端是由你的FreeBSD版本所決定的;如果你希望建立更多虛擬終端,可以讀一下這個(gè)faq。

現(xiàn)在讓我們移到撥號(hào)終端:

# Serial terminals
# The 'dialup' keyword identifies dialin lines to login, fingerd etc.
ttyd0 "/usr/libexec/getty std.9600" dialup off secure
ttyd1 "/usr/libexec/getty std.9600" dialup off secure
ttyd2 "/usr/libexec/getty std.9600" dialup off secure
ttyd3 "/usr/libexec/getty std.9600" dialup off secure
你可以看到我有四個(gè)可獲得的撥號(hào)終端,但它們都被關(guān)閉了。如果我想讓用戶通過(guò)調(diào)制解調(diào)器訪問(wèn)我的FreeBSD系統(tǒng),我就必須至少打開(kāi)它們中的一個(gè),還必須決定是否讓這些用戶可以用root身份登錄;如果不,就把單詞“secure”改為“insecure”。你是否看到getty欄含有數(shù)字9600,它說(shuō)明數(shù)據(jù)傳輸率為9600bps。因?yàn)楝F(xiàn)在很多調(diào)制解調(diào)器都有更高的速率,我也可以把它改為57600。最后,最好讀一下FreeBSD handbook中的撥號(hào)服務(wù)部分。

/etc/ttys文件的最后一部分是網(wǎng)絡(luò)或偽終端。你會(huì)看到它們有很多,準(zhǔn)確地說(shuō)是255個(gè),范圍從:

# Pseudo terminals
ttyp0   none         network



ttySv   none         network
且缺省情況下它們都沒(méi)有被允許。

如果你為了使/etc/ttys更改生效以使init使用這些更改,可以超級(jí)用戶的身份向init發(fā)送一個(gè)HUP信號(hào),如:

kill -1 1
這里前面的-1代表信號(hào)1(HUP),而后面1代表進(jìn)程1(init)。

那么現(xiàn)在,哪個(gè)/etc/ttys文件中提到的getty程序繼續(xù)保持運(yùn)行呢?man 8中對(duì)getty的描述如下:

描述
init(8)調(diào)用getty程序打開(kāi)并初始化tty行,讀取一個(gè)登錄名,然后調(diào)用login(1)。
所以,init讀取/etc/ttys并在每個(gè)你在配置文件中設(shè)定的終端上啟動(dòng)一個(gè)getty進(jìn)程。getty的工作是監(jiān)視終端看是否有人試圖登錄。如果有的話,getty將啟動(dòng)登錄程序校驗(yàn)用戶的登錄名和口令。如果校驗(yàn)合格,登錄程序會(huì)啟動(dòng)用戶的登錄命令解釋器并把用戶置于他們的宿主目錄下。當(dāng)用戶具有一個(gè)命令解釋器后,他們就可以與操作系統(tǒng)交互了。現(xiàn)在它就可以讓命令解釋器解釋用戶的輸入并確保啟動(dòng)了必要的進(jìn)程。

當(dāng)一個(gè)用戶退出登錄時(shí),再次調(diào)用init啟動(dòng)其它的getty進(jìn)程以繼續(xù)監(jiān)視終端等待其它的登錄嘗試。

讓我們看一下ps命令的輸出來(lái)總結(jié)一下剛才這次引導(dǎo)的整個(gè)過(guò)程,F(xiàn)reeBSD 4.1缺省已經(jīng)安裝了ps程序。我將用-ax開(kāi)關(guān)以包含系統(tǒng)進(jìn)程:

ps -ax
  PID  TT  STAT      TIME COMMAND
    0  ??  DLs    0:00.01  (swapper)
    1  ??  ILs    0:00.16 /sbin/init --
    2  ??  DL     0:00.02  (pagedaemon)
    3  ??  DL     0:00.00  (vmdaemon)
    4  ??  DL     0:00.02  (bufdaemon)
    5  ??  DL     0:01.02  (syncer)
 1056  ??  Is     0:00.00 adjkerntz -i
 1187  ??  Ss     0:00.08 syslogd -s
 1206  ??  Is     0:00.05 inetd -wW
 1208  ??  Is     0:00.11 cron
 1622  ??  Ss     0:00.02 sendmail: accepting connections on port 25 (sendmail)
 1621  v0  Ss     0:00.12 -csh (csh)
 1701  v0  R+     0:00.00 ps -ax
 1699  v1  Is+    0:00.01 /usr/libexec/getty Pc ttyv1
 1619  v2  Is+    0:00.01 /usr/libexec/getty Pc ttyv2
 1618  v3  Is+    0:00.01 /usr/libexec/getty Pc ttyv3
 1617  v4  Is+    0:00.01 /usr/libexec/getty Pc ttyv4
 1616  v5  Is+    0:00.01 /usr/libexec/getty Pc ttyv5
 1615  v6  Is+    0:00.01 /usr/libexec/getty Pc ttyv6
 1614  v7  Is+    0:00.01 /usr/libexec/getty Pc ttyv7
現(xiàn)在你可以認(rèn)識(shí)很多進(jìn)程:swapper的PID為0而init的為1。adjkerntz,syslogd,inetd,cron和sendmail都是由rc啟動(dòng)的。當(dāng)然,我必須在一個(gè)命令解釋器上運(yùn)行這個(gè)ps命令;在上述情況中,它是從ttyv0上的c shell解釋器運(yùn)行的。getty進(jìn)程等待虛擬終端1-7上的登錄。而在虛擬終端8上則沒(méi)有運(yùn)行g(shù)etty進(jìn)程,因?yàn)樵摻K端在/etc/ttys中被標(biāo)為了“off”。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 男男羞羞视频网站国产 | 成人小视频免费在线观看 | 国产精品视频导航 | 久久精品亚洲一区二区三区观看模式 | 国产91av视频 | 精品国产一区二区三区四区在线 | 在线观看av国产一区二区 | 国语自产免费精品视频在 | 欧美日韩专区国产精品 | 美女羞羞视频在线观看 | 精品中文字幕视频 | 久久精品二区 | 国产午夜精品久久久久久免费视 | 国产亚洲精品久久午夜玫瑰园 | 免费国产自久久久久三四区久久 | 中文字幕电影免费播放 | 久久久久久久久久久久网站 | 在线观看免费精品 | 免费在线中文字幕 | 精品一区二区久久久久久按摩 | 草草在线观看 | 国产亚洲精品久久久久久久软件 | 视频一区 日韩 | 大西瓜永久免费av在线 | 欧美成人亚洲 | 亚洲一区二区三区精品在线观看 | 一级毛片在线观看免费 | 成人一级毛片 | a免费视频 | 久久蜜桃香蕉精品一区二区三区 | 中国3xxxx| 99视频观看| 久章草影院 | 国产69精品久久久久孕妇黑 | 国产精品久久二区 | 特黄一级小说 | 久久欧美亚洲另类专区91大神 | 日本特级a一片免费观看 | 一级做a爱片毛片免费 | 一级免费特黄视频 | 一级黄色大片在线观看 |