pid檔案的作用
一、pid檔案的作用
1.pid檔案的內容
用cat命令檢視,可以看到內容只有一行,記錄了該程序的id
2.pid檔案的作用
防止啟動多個程序副本
3.pid檔案的原理
程序執行後會給.pid檔案加乙個檔案鎖,只有獲得pid檔案(固定路徑固定檔名)寫入許可權(f_wrlck)的程序才能正常啟動並把自身的pid寫入該檔案中。其它同乙個程式的多餘程序則自動退出。
二、mysql的pid檔案
mysql pid檔案記錄的是當前mysqld程序的pid.
通過mysqld_safe啟動mysql時,mysqld_safe會檢查pid檔案,未指定pid檔案時,pid檔案預設名為$datadir/`hostname`.pid
1)pid檔案不存在,不做處理
2)檔案存在,且pid已占用則報錯"a mysqld process already exists"
檔案存在,,但pid未占用,則刪除pid檔案
mysqld啟動後會通過create_pid_file函式新建pid檔案,通過getpid()獲取當前程序pid並將pid寫入pid檔案。
因此,通過mysqld_safe啟動時,pid檔案的作用是為了防止同乙個資料庫被啟動多次(資料檔案是同乙份,但埠不同的情況)。
三、mysql中的socket檔案的作用
mysql中的socket檔案的作用涉及到mysql的連線方式,mysql的客戶端連線mysql的服務端有兩種方式,一種是tcp/ip方式,一種是socket檔案的方式。
(1)tcp/ip 套接字方式
這種方式會在tcp/ip 連線上建立乙個基於網路的連線請求,一般是client連線跑在server上的mysql例項,2臺機器通過乙個tcp/ip 網路連線。
c:\users\gechong>mysql -h 192.168.1.10 -uroot -p
enter password: *
welcome to the mysql monitor. commands end with ; or \g.
your mysql connection id is 6
server version: 5.5.20-log mysql community server (gpl)
oracle is a registered trademark of oracle corporation and/or its
affiliates. other names may be trademarks of their respective
owners.
type 『help;』 or 『\h』 for help. type 『\c』 to clear the current input statement.
mysql>
這裡的客戶端是windows,向ip為192.168.1.10 的伺服器上的mysql例項發起了tcp/ip請求,連線成功後就可以使用mysql了。
(2)unix域套接字
unix域套接字並不是網路協議,所以只能在mysql客戶端和資料庫例項在一台伺服器上使用,使用者可以在配置檔案中指定套接字檔案,在登入mysql的時候可以加上socket。使用socket你無須定義連線host的具體ip位址,只要為空或127.0.0.1就可以。
–socket=/tmp/mysql.sock
mysql> show variables like 『socket』;
| variable_name | value |
| socket | /tmp/mysql.sock |
1 row in set (0.00 sec)
#mysql -uroot -s/tmp/mysql.sock
怎樣檢視mysql pid檔案路徑 檔案位置
當mysql例項啟動時,會將自己的程序id寫入乙個檔案中 該檔案即為pid檔案。該檔案可由引數pid file控制,預設位於資料庫目錄下,檔名為主機名.pid mysql show variables like pid file g 1.row variable name pid file valu...
P I D的作用及相關總結
p i d三個環節的作用 比例環節 能迅速反映誤差,從而減小誤差,但比例控制不能消除穩態誤差,kp 增大可以減小系統的穩態誤差,提高控制精度,但kp 太大會引起系統的不穩定 積分環節 提高系統的無差度,從而使系統的穩態效能得到改善和提高。但是積分作用太強會使系統超調加大,甚至使系統出現振盪,一般不單...
hadoop程序pid檔案問題
由於機器伺服器維護需要,要求hadoop集群的一台伺服器停止服務,於是我就到那台伺服器去停止hadoop的datanode和tasktracker,執行以下命令 bin hadoop daemon.sh stop datanode 竟然輸出 no datanode to stop 但是檢視程序,卻發...