1. cygserver: 調(diào)用semget出錯(cuò)的問題: "Bad system call"
2. 如何生成 coredump 文件?
3. 啟動apache.
4. 提供telnet, ftp, sshd服務(wù)
. 4.1 ssh服務(wù)在cygwin上架設(shè)指南
剛開始使用Cygwin的時(shí)候覺得挺難的, 隨著時(shí)間的推移和對Cygwin的熟悉, 越來越感覺到
Cygwin的強(qiáng)大. 但是給我的感覺是它在模擬Linux操作系統(tǒng)時(shí), 尤其是復(fù)雜應(yīng)用程序的時(shí)
候還顯得無能為力. 直到遇到了強(qiáng)大的Cygwin服務(wù)程序, 我才又一次感覺到了Cygwin的強(qiáng)
大.
1. cygserver: 調(diào)用semget出錯(cuò)的問題: "Bad system call"
Cygwin有一些特殊的功能, 如IPC Message Queues, XSI IPC Semaphores, XSI IPC
Shared Memory.默認(rèn)是沒有打開的, 大概是為了安全等問題. 要想使用這些功能, 必須先
啟動cygserver程序或服務(wù). 否則會報(bào)錯(cuò): "Bad system call"
cygserver可以作為一個(gè)服務(wù)安裝, 啟用的方法如下:終端執(zhí)行:
$cygserver-config(按照提示配置)
$net start cygserver(cygserver作為Windows操作系統(tǒng)的一個(gè)服務(wù)運(yùn)行)
$net stop cygserver(停止cygserver, 也可以在Windows任務(wù)管理器里結(jié)束進(jìn)程)
在$CYGWIN/Cygwin.bat里添加下面的配置:
$set CYGWIN=server
當(dāng)然你也可以在每次需要的時(shí)候手動啟動:
$cygwinserver &
2. 如何生成 coredump 文件?
在缺省的 cygwin 環(huán)境下出錯(cuò)時(shí)并不產(chǎn)生 core 文件,而是產(chǎn)生一個(gè)stackdump文件,該
文件所含信息比core文件少,不能當(dāng)作core文件使用.為了產(chǎn)生真正的core文件,可以配置
好下面的環(huán)境變量:
set CYGWIN="$CYGWIN error_start=dumper.exe -d %1 %2"(在d:\cygwin\Cygwin.bat文件里)
或者:
export CYGWIN="$CYGWIN error_start=dumper.exe -d %1 %2"(在.bashrc文件里)
coredump時(shí), cygwin會調(diào)用dumper.exe程序在當(dāng)前目錄下產(chǎn)生core文件. 但是不是對這個(gè)
core文件抱太大的指望. 根據(jù)我的經(jīng)驗(yàn), 很多時(shí)候用bt列出的調(diào)用棧都是不可用的. 我也
不知道為什么. 全局變量好像可以查看.
3. 啟動apache.
安裝Cygwin時(shí)選擇Apache-2.2進(jìn)行安裝
vi ~/.bashrc 添加如下內(nèi)容(或者在windows環(huán)境變量里面配置)
CYGWIN=server
export CYGWIN
執(zhí)行 . ~/.bashrc 讓其生效
執(zhí)行cygserver-config
并啟動cygserver,
net start cygserver
最后執(zhí)行 /usr/sbin/apachectl2 start 啟動Apache
打開瀏覽器訪問http://localhost 檢查, it works!
4. 提供telnet, ftp, sshd服務(wù)
既然是UNIX的模擬環(huán)境,當(dāng)然要有telnet,ftp才好用。
簡單的辦法就是安裝xinetd服務(wù):
$cygrunsrv -I xinetd -p /usr/sbin/xinetd -d ‘CYGWIN xinetd’ -1 /dev/null -2 /dev/null
$cygrunsrv -S xinetd
2006.05.17
4.1 ssh服務(wù)在cygwin上架設(shè)指南
sshd 服務(wù)在cygwin上默認(rèn)是不開啟的, 可能是出于安全的需要. 但是有些服務(wù)可能需要
cygwin作為一個(gè)sshd服務(wù)器. 這時(shí)你需要手動打開sshd服務(wù).[4]
1) 先確認(rèn)一下cygrunsrv.exe 已經(jīng)安裝.
whereis cygrunsrv
2) 生成ssh_config文件
這時(shí)候并不能起動sshd服務(wù)的, 先運(yùn)行ssh-host-config 會提示你一些信息, 照著做就是
了, 多數(shù)是yes, 在選擇是否加載為service的時(shí)候小心一點(diǎn), 這里的service是指windows
的service, 即使cygwin不啟動, sshd也會在開機(jī)的時(shí)候啟動起來.
3) 啟動或停止sshd
net start sshd (cygrunsrv -S sshd)
net stop sshd
4) 實(shí)施過程
打開cygwin控制臺, 輸入ssh-host-config, 一路yes, 提示CYGWIN值時(shí), 輸入netsec tty.
啟動sshd服務(wù)用: net start sshd 或 cygrunsrv --start sshd; 停止sshd服務(wù)用:net
stop sshd 或 cygrunsrv --stop sshd
聯(lián)系客服