13.系統(tǒng)服務(wù)

一、后臺(tái)任務(wù)

http://www.reibang.com/p/954550c2b528

&

先說工作任務(wù)

Ctrl+z 可以把一個(gè)前臺(tái)運(yùn)行的程序放在后臺(tái)。

先編輯一個(gè) a.sh 的小程序

while true
do
   echo "$(date +%s) I love her" >> /root/bin/love.txt
   sleep 3
done

運(yùn)行這個(gè)程序

sh   a.sh

此時(shí)曹宴,你會(huì)發(fā)現(xiàn)這個(gè)程序是卡在當(dāng)前的終端的,這個(gè)就是程序在前臺(tái)運(yùn)行的梁钾。
這種情況下武契,這個(gè)程序不終止的話,當(dāng)前終端就無法執(zhí)行別的命令了挡爵。

此時(shí)竖般,可以按下 Ctrl+z 把這個(gè)程序放到后臺(tái),但是茶鹃,這個(gè)程序會(huì)進(jìn)入 停止?fàn)顟B(tài)涣雕。

jobs 命令會(huì)查看到當(dāng)前后臺(tái)的工作任務(wù)

jobs

fg %工作號(hào) 就是可以把后臺(tái)的工作任務(wù)調(diào)到前臺(tái)繼續(xù)運(yùn)行

bg %工作號(hào) 會(huì)讓后天處于停止?fàn)顟B(tài)的任務(wù)(進(jìn)程) 繼續(xù)運(yùn)行于后臺(tái)

bg   %1

使用如下方式,可以讓一個(gè)程序闭翩,在一開始運(yùn)行時(shí)就在后臺(tái)運(yùn)行挣郭。

命令   選項(xiàng)   參數(shù)    &
sh   a.sh      &

daemon 守護(hù)進(jìn)程

計(jì)算機(jī)想要提供一些功能給用戶使用,需要一個(gè)程序疗韵,并把進(jìn)程運(yùn)行起來兑障。

之前說過,程序運(yùn)行起來就是進(jìn)程了蕉汪,進(jìn)程都有生命周期的流译。

運(yùn)行 等待 休眠 結(jié)束

計(jì)算機(jī)提供的某一項(xiàng)功能需要長(zhǎng)期的運(yùn)行,就像一個(gè)網(wǎng)站肤无,你什么時(shí)間訪問他先蒋,都會(huì)得到響應(yīng)。

這樣就需要把提供這類功能的進(jìn)程長(zhǎng)期的放在內(nèi)存中宛渐,不讓他結(jié)束竞漾。

這類的進(jìn)程通常成為服務(wù)眯搭,那誰來管理這些進(jìn)程呢?就是控制這些服務(wù)進(jìn)程的啟動(dòng)业岁、重啟搓茬、停止锚沸。

就是叫守護(hù)進(jìn)程的進(jìn)程折联, 在 CentOS7 中是 systemd, CentOS5/6 是 init棕叫。

也可以說服務(wù) service 通常都是以守護(hù)進(jìn)程的方式啟動(dòng)的,都是在后臺(tái)運(yùn)行的。

早期的 System V

在一開始 那個(gè)很純種的 Unix 版本的年代下面允耿,啟動(dòng)系統(tǒng)服務(wù)的管理方式被稱為 SysV 的 init 腳本程序的處理方式借笙!亦即系統(tǒng)核心第一支調(diào)用的程序是 init , 然后 init 去喚起所有的系統(tǒng)所需要的服務(wù)较锡,不論是本機(jī)服務(wù)還是網(wǎng)絡(luò)服務(wù)业稼。

init 的管理機(jī)制有幾個(gè)特點(diǎn):

  1. 服務(wù)的啟動(dòng)、關(guān)閉與觀察等方式:
    服務(wù)啟動(dòng)腳本通通放置于 /etc/init.d/ 下蚂蕴,都是 bash shell script 腳本程序低散。

    • 啟動(dòng):/etc/init.d/daemon start
    • 關(guān)閉:/etc/init.d/daemon stop
    • 重新啟動(dòng):/etc/init.d/daemon restart
    • 查看狀態(tài):/etc/init.d/daemon status
  2. 服務(wù)啟動(dòng)的分類:獨(dú)立啟動(dòng)和超級(jí)守護(hù)進(jìn)程總管程序管理

  1. 服務(wù)的相依性問題
    假如啟動(dòng)一個(gè) HTTP 服務(wù),那他就依賴于 網(wǎng)絡(luò)服務(wù)骡楼,就是網(wǎng)絡(luò)服務(wù)必須先被啟動(dòng)熔号。

  2. 執(zhí)行等級(jí)的分類
    init 是開機(jī)后核心主動(dòng)調(diào)用的, 然后 init 可以根據(jù)使用者自訂的執(zhí)行等級(jí) (runlevel) 來喚醒不同的服務(wù)鸟整,以進(jìn)入不同的操作界面引镊。
    Linux 提供 7 個(gè)等級(jí)(0-6)
    比較重要的:

  • 0 關(guān)機(jī)
  • 1 單用戶模式(root)
  • 3 帶網(wǎng)絡(luò)服務(wù)的多用戶純文本模式
  • 5 圖形界面
  • 6 重啟

使用命令 init 級(jí)別的數(shù)字 可以進(jìn)入相應(yīng)的運(yùn)行級(jí)別

  1. 指定級(jí)別默認(rèn)啟動(dòng)的服務(wù)

可以使用如下方式設(shè)置某個(gè)服務(wù)在每個(gè)運(yùn)行級(jí)別是否是默認(rèn)啟動(dòng)狀態(tài)

chkconfig  --list   // 查看所有的服務(wù)運(yùn)行級(jí)級(jí)別的狀態(tài) 
chkconfig   --level  3  mysqld  off  // 設(shè)置 mysqld 服務(wù)在運(yùn)行級(jí)別 3 默認(rèn)不啟動(dòng)
chkconfig  --level   3  --level  5  mysqld  on   // 設(shè)置 mysqld  服務(wù)在運(yùn)行級(jí)別 3 和 5 中默認(rèn)啟動(dòng)

雖然 CentOS 7 已經(jīng)不使用 init 來管理服務(wù)了,不過因?yàn)榭紤]到某些腳本沒有辦法直接塞入 systemd 的處理吃嘿,因此這些腳本還是被保留下來祠乃, 所以,我們?cè)谶@里還是稍微介紹了一下兑燥。

CentOS7當(dāng)前的 systemd

從 CentOS 7.x 以后,Red Hat 系列的 distribution(發(fā)行版本) 放棄沿用多年的 System V 開機(jī)啟動(dòng)服務(wù)的流程琴拧,就是前面提到的 init 啟動(dòng)腳本的方法降瞳, 改用 systemd 這個(gè)啟動(dòng)服務(wù)管理機(jī)制。

systemd 的優(yōu)點(diǎn)

  • 并行啟動(dòng)服務(wù)

舊的 init 啟動(dòng)腳本是一項(xiàng)一項(xiàng)任務(wù)依序啟動(dòng)的模式蚓胸,因此沒有依賴關(guān)系的服務(wù)也是得要一個(gè)一個(gè)的啟動(dòng)的挣饥。
目前我們的硬件主機(jī)系統(tǒng)與操作系統(tǒng)幾乎都支持多核心架構(gòu)了,所以應(yīng)該支持并行啟動(dòng)。systemd 就是可以讓所有的服務(wù)同時(shí)啟動(dòng)沛膳。

  • 請(qǐng)求得到立刻回復(fù)

systemd 由于常駐內(nèi)存扔枫,因此任何要求 (on-demand) 都可以立即處理后續(xù)的 daemon 啟動(dòng)的任務(wù).

  • 服務(wù)相依性的自我檢查

例如,你部署了 FTP 服務(wù)锹安,并且明確配置了它要依賴于 network (網(wǎng)絡(luò)) 服務(wù),但是你的 network 服務(wù)并沒有啟動(dòng)短荐,此時(shí)倚舀,你要啟動(dòng) FTP 服務(wù),systemd 會(huì)幫你啟動(dòng) network 服務(wù)忍宋。

  • 依 daemon 功能分類

systemd 將服務(wù)單位 (unit) 區(qū)分為 service, socket, target, path, snapshot, timer 等多種不同的類型(type)痕貌, 方便系統(tǒng)管理員分類與記憶。

  • 向下相容舊有的 init 服務(wù)腳本

基本上糠排, systemd 是可以相容于 init 的啟動(dòng)腳本的舵稠,因此,舊的 init 啟動(dòng)腳本也能夠通過 systemd 來管理入宦,只是更進(jìn)階的 systemd 功能就沒有辦法支持了哺徊。

  • 多個(gè) daemons 集合成為一個(gè)群組 target

systemd 的配置文件放置目錄

systemd 將過去所謂的 daemon 執(zhí)行腳本通通稱為一個(gè)服務(wù)單位 (unit),而每種服務(wù)單位依據(jù)功能來區(qū)分時(shí)乾闰,就分類為不同的類型 (type)落追。

配置文件都放在下面的路徑中

  • /usr/lib/systemd/system/

每個(gè)服務(wù)最主要的啟動(dòng)腳本設(shè)置,有點(diǎn)類似以前的 /etc/init.d 下面的文件汹忠;

  • /run/systemd/system/

系統(tǒng)執(zhí)行過程中所產(chǎn)生的服務(wù)腳本淋硝,這些腳本的優(yōu)先序要比 /usr/lib/systemd/system/ 高!

  • /etc/systemd/system/

管理員依據(jù)主機(jī)系統(tǒng)的需求所創(chuàng)建的執(zhí)行腳本宽菜,其實(shí)這個(gè)目錄有點(diǎn)像以前 /etc/rc.d/rc5.d/Sxx 之類的功能谣膳!執(zhí)行優(yōu)先序又比 /run/systemd/system/ 高!

而實(shí)際執(zhí)行的 systemd 啟動(dòng)腳本配置文件铅乡, 其實(shí)都是放置在 /usr/lib/systemd/system/ 下面继谚。
因此如果你想要修改某個(gè)服務(wù)啟動(dòng)的設(shè)置,應(yīng)該要去 /usr/lib/systemd/system/ 下面修改才對(duì)阵幸!

systemd 的 unit 類型分類說明

一個(gè)服務(wù)執(zhí)行的腳本就成為一個(gè) unit (服務(wù)單位)

通過擴(kuò)展名區(qū)分 unit 的類型

  • .service 一般服務(wù)類型 (service unit)

主要是系統(tǒng)服務(wù)花履,包括服務(wù)器本身所需要的本機(jī)服務(wù)以及網(wǎng)絡(luò)服務(wù)都是!比較經(jīng)常被使用到的服務(wù)大多是這種類型挚赊! 所以诡壁,這也是最常見的類型了!

  • .socket 內(nèi)部程序數(shù)據(jù)交換的 socket 服務(wù) (socket unit)

主要是 IPC (Inter-process communication) 的傳輸訊息 socket file 功能。 一般用于本機(jī)服務(wù)比較多荠割,例如我們的圖形界面很多的軟件都是通過 socket 來進(jìn)行本機(jī)程序數(shù)據(jù)交換的行為妹卿。

  • .target 執(zhí)行環(huán)境類型 (target unit)

其實(shí)是一群 unit 的集合,例如 multi-user.target 其實(shí)就是一堆服務(wù)的集合~也就是說蔑鹦, 選擇執(zhí)行 multi-user.target 就是執(zhí)行一堆其他 .service 或/及 .socket 之類的服務(wù)夺克!

  • .mount .automount 文件系統(tǒng)掛載相關(guān)的服務(wù) (automount unit / mount unit)

例如來自網(wǎng)絡(luò)的自動(dòng)掛載、NFS 文件系統(tǒng)掛載等與文件系統(tǒng)相關(guān)性較高的程序管理嚎朽。

  • .path 偵測(cè)特定文件或目錄類型 (path unit)

某些服務(wù)需要偵測(cè)某些特定的目錄來提供隊(duì)列服務(wù)铺纽,例如最常見的打印服務(wù),就是通過偵測(cè)打印隊(duì)列目錄來啟動(dòng)打印功能哟忍! 這時(shí)就得要 .path 的服務(wù)類型支持了狡门!

  • .timer 循環(huán)執(zhí)行的服務(wù) (timer unit)

這個(gè)東西有點(diǎn)類似 anacrontab 喔陷寝!不過是由 systemd 主動(dòng)提供的,比 anacrontab 更加有彈性融撞!


通過 systemctl 管理服務(wù)

systemd 啟動(dòng)服務(wù)的機(jī)制盼铁,主要是通過 systemctl 的命令完成所有的操作。

命令語法: systemctl [command] [unit]

command 主要有:

status    :查看這個(gè) unit 的狀態(tài)尝偎!
start     :立刻啟動(dòng)
stop      :立刻停止
restart   :先執(zhí)行 stop 再執(zhí)行 start 的意思

enable    :設(shè)置下次開機(jī)時(shí)饶火,啟動(dòng)后面接的 unit 
disable   :設(shè)置下次開機(jī)時(shí),不啟動(dòng)后面接的 unit

reload    :不關(guān)閉后面接的 unit 的情況下致扯,重新載入配置文件肤寝,讓設(shè)置生效

示例操作

查看 atd.server 的狀態(tài)

[root@shark ~]# systemctl status atd.service
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since 一 2019-07-29 22:41:37 CST; 46min ago
 Main PID: 1162 (atd)
   CGroup: /system.slice/atd.service
           └─1162 /usr/sbin/atd -f

7月 29 22:41:37 shark.sharkyun.com systemd[1]: Started Job spooling tools.
7月 29 22:41:37 shark.sharkyun.com systemd[1]: Starting Job spooling tools...

關(guān)鍵的是第二行和第三行
第二行中的 enabled 表示下次開機(jī),會(huì)自動(dòng)啟動(dòng)此服務(wù)抖僵。
第三行中的 loaded(running) 表示目前是運(yùn)行狀態(tài)鲤看。

先關(guān)閉 atd.server, 在看其狀態(tài)

[root@shark ~]# systemctl status atd.service
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since 一 2019-07-29 23:31:09 CST; 1s ago
  Process: 1162 ExecStart=/usr/sbin/atd -f $OPTS (code=exited, status=0/SUCCESS)
 Main PID: 1162 (code=exited, status=0/SUCCESS)

7月 29 22:41:37 shark.sharkyun.com systemd[1]: Started Job spooling tools.
7月 29 22:41:37 shark.sharkyun.com systemd[1]: Starting Job spooling tools...
7月 29 23:31:09 shark.sharkyun.com systemd[1]: Stopping Job spooling tools...
7月 29 23:31:09 shark.sharkyun.com systemd[1]: Stopped Job spooling tools.

第三行中的 inactive (dead) 表示目前沒有運(yùn)行

關(guān)于 Active 的狀態(tài):

  • active (running):正在運(yùn)行
  • active (exited):僅執(zhí)行一次就正常結(jié)束的服務(wù),目前并沒有任何程序在系統(tǒng)中執(zhí)行耍群。 舉例來說义桂,開機(jī)或者是掛載時(shí)才會(huì)進(jìn)行一次的 quotaon 功能,就是這種模式5腹浮(無須常駐內(nèi)存)慷吊。
  • active (waiting):正在執(zhí)行當(dāng)中,不過還再等待其他的事件才能繼續(xù)處理曹抬。舉例來說溉瓶,打印的隊(duì)列相關(guān)服務(wù)就是這種狀態(tài)!
  • inactive:這個(gè)服務(wù)目前沒有運(yùn)行的意思谤民。

關(guān)于daemon (服務(wù)) 的默認(rèn)狀態(tài)

  • enabled:這個(gè) daemon 將在開機(jī)時(shí)被執(zhí)行
  • disabled:這個(gè) daemon 在開機(jī)時(shí)不會(huì)被執(zhí)行
  • mask:這個(gè) daemon 無論如何都無法被啟動(dòng)堰酿!因?yàn)橐呀?jīng)被強(qiáng)制注銷 (非刪除)≌抛悖可通過 systemctl unmask 方式改回原本狀態(tài)
  • static:這個(gè) daemon 不可以自己?jiǎn)?dòng) (enable 不可)触创,不過可能會(huì)被其他的 enabled 的服務(wù)來喚醒 (相依屬性的服務(wù))

強(qiáng)制注銷

被注銷的服務(wù)是服務(wù)再次啟動(dòng)的
別擔(dān)心,可以使用 unmask 取消注銷

命令
systemctl status cups

輸出
● cups.service
   Loaded: masked (/dev/null; bad)  # 注意這里
   Active: inactive (dead)

取消注銷

 systemctl unmask cups.service

通過 systemctl 管理不同的操作環(huán)境 (target unit)

列出跟運(yùn)行級(jí)別有關(guān)的 target

 systemctl list-units --type=target --all

幾個(gè)比較重要的 target unit

  • graphical.target

就是文字加上圖形界面为牍,這個(gè)項(xiàng)目已經(jīng)包含了下面的 multi-user.target 項(xiàng)目嗅榕!

  • multi-user.target

純文本模式!

  • rescue.target

救援模式吵聪!在無法使用 root 登陸的情況下,systemd 在開機(jī)時(shí)會(huì)多加一個(gè)額外的暫時(shí)系統(tǒng)兼雄,與你原本的系統(tǒng)無關(guān)吟逝。這時(shí)你可以取得 root 的權(quán)限來維護(hù)你的系統(tǒng)。 但是這是額外系統(tǒng)赦肋,因此可能需要?jiǎng)拥?chroot 的方式來取得你原有的系統(tǒng)块攒!自修

  • emergency.target

緊急處理系統(tǒng)的錯(cuò)誤励稳,還是需要使用 root 登陸的情況,在無法使用 rescue.target 時(shí)囱井,可以嘗試使用這種模式驹尼!

  • shutdown.target

就是關(guān)機(jī)的流程。

  • getty.target

可以設(shè)置你需要幾個(gè) tty 之類的庞呕,如果想要降低 tty 的數(shù)量新翎,可以修改這個(gè)東西的配置文件!

查看當(dāng)前模式和修改默認(rèn)模式

命令語法:

systemctl [command] [unit.target]
選項(xiàng)與參數(shù):
command:
    get-default :查看默認(rèn)的 target 
    set-default :設(shè)置后面接的 target 成為默認(rèn)的模式
    isolate     :切換到后面接的模式

示例

# 獲取到當(dāng)前默認(rèn)的啟動(dòng)模式
[root@shark ~]# systemctl get-default
graphical.target   # 圖形模式

# 設(shè)置默認(rèn)啟動(dòng)模式為 字符模式(就是黑和白)
[root@shark ~]# systemctl set-default multi-user.target
Removed symlink /etc/systemd/system/default.target.
Created symlink from /etc/systemd/system/default.target to /usr/lib/systemd/system/multi-user.target.

# 再次檢查當(dāng)前默認(rèn)的啟動(dòng)模式
[root@shark ~]# systemctl get-default
multi-user.target

在不重新開機(jī)的情況下住练,將目前的操作環(huán)境改為純文本模式地啰,關(guān)掉圖形界面

systemctl isolate multi-user.target

系統(tǒng)服務(wù)和端口

head  -50   /etc/services

添加自定義服務(wù)到 systemd

systemctl 配置文件的設(shè)置項(xiàng)目簡(jiǎn)介

先看一個(gè) sshd.service 的實(shí)例

[root@shark ~]# cat /usr/lib/systemd/system/sshd.service
[Unit]
Description=OpenSSH server daemon
Documentation=man:sshd(8) man:sshd_config(5)
After=network.target sshd-keygen.service
Wants=sshd-keygen.service

[Service]
Type=notify
EnvironmentFile=/etc/sysconfig/sshd
ExecStart=/usr/sbin/sshd -D $OPTIONS
ExecReload=/bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
RestartSec=42s

[Install]
WantedBy=multi-user.target

配置文件中大概能夠?qū)⒄麄€(gè)設(shè)置分為三個(gè)部份,就是:

  • [Unit]

unit 本身的說明讲逛,以及與其他相依 daemon 的設(shè)置亏吝,包括在什么服務(wù)之后才啟動(dòng)此 unit 之類的設(shè)置值;

  • [Service], [Socket], [Timer], [Mount], [Path]..

不同的 unit type 就得要使用相對(duì)應(yīng)的設(shè)置項(xiàng)目盏混。
我們拿的是 sshd.service 來當(dāng)范本蔚鸥,所以這邊就使用 [Service] 來設(shè)置。 這個(gè)項(xiàng)目?jī)?nèi)主要在規(guī)范服務(wù)啟動(dòng)的腳本许赃、環(huán)境配置文件文件名止喷、重新啟動(dòng)的方式等等。

  • [Install]

這個(gè)項(xiàng)目就是將此 unit 安裝到哪個(gè) target 里面去的意思图焰!

參考資料

示例

下面的示例是启盛,寫一個(gè) shell 腳本,之后讓 systemd 去管理這個(gè)腳本程序技羔。

編寫腳本和環(huán)境文件

在自己用戶的家目錄下的 bin 目錄下編寫腳本 love.sh , 寫入下面的內(nèi)容

while true
do
   echo "$(date +%s) I love her" >> /root/bin/love.txt
   echo "$(date +%s) ${name} love her" >> /root/bin/love.txt
   sleep 3
done

腳本的意思是
每 3 秒鐘向 /root/bin/love.txt 文件中寫上兩句話
注意 ${name} 是一個(gè)配置文件的中變量

編寫這個(gè)腳本程序的配置文件 /root/bin/love.conf

name=shark-user

作為服務(wù)添加到 systemd

編譯 /etc/ 文件僵闯,添加如下內(nèi)容

[Unit]
Description=Love server daemon

[Service]
Type=simple
ExecStart=/bin/bash /root/bin/love.sh
ExecStop=/bin/kill -9 $(ps -ef |grep '[a].sh' |awk '{print $2}')
EnvironmentFile=/root/bin/love.conf

[Install]
WantedBy=multi-user.target

控制服務(wù)啟停

systemctl daemon-reload   // 程序加載 讓 systemd 加載 love.service 服務(wù)
systemctl start love.service   // 啟動(dòng)
systemctl status love.service   // 查看狀態(tài)

驗(yàn)證程序的執(zhí)行結(jié)果, 持續(xù)觀察 /root/bin/love.txt 文件,看有沒有被持續(xù)寫入內(nèi)容藤滥,并且觀察變量有沒有生效鳖粟。

tail   -f    /root/bin/love.txt

輸出
1564567167 I love her
1564567167 shark-user love her
1564567170 I love her
1564567170 shark-user love her
1564567173 I love her
1564567173 shark-user love her
1564567176 I love her
1564567176 shark-user love her
1564567179 I love her
1564567179 shark-user love her

timer

點(diǎn)我

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市拙绊,隨后出現(xiàn)的幾起案子向图,更是在濱河造成了極大的恐慌,老刑警劉巖标沪,帶你破解...
    沈念sama閱讀 212,816評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件榄攀,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡金句,警方通過查閱死者的電腦和手機(jī)檩赢,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,729評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來违寞,“玉大人贞瞒,你說我怎么就攤上這事偶房。” “怎么了军浆?”我有些...
    開封第一講書人閱讀 158,300評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵棕洋,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我乒融,道長(zhǎng)掰盘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,780評(píng)論 1 285
  • 正文 為了忘掉前任簇抵,我火速辦了婚禮庆杜,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘碟摆。我一直安慰自己晃财,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,890評(píng)論 6 385
  • 文/花漫 我一把揭開白布典蜕。 她就那樣靜靜地躺著断盛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪愉舔。 梳的紋絲不亂的頭發(fā)上钢猛,一...
    開封第一講書人閱讀 50,084評(píng)論 1 291
  • 那天,我揣著相機(jī)與錄音轩缤,去河邊找鬼命迈。 笑死,一個(gè)胖子當(dāng)著我的面吹牛火的,可吹牛的內(nèi)容都是我干的壶愤。 我是一名探鬼主播,決...
    沈念sama閱讀 39,151評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼馏鹤,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼征椒!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起湃累,我...
    開封第一講書人閱讀 37,912評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤勃救,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后治力,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蒙秒,經(jīng)...
    沈念sama閱讀 44,355評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,666評(píng)論 2 327
  • 正文 我和宋清朗相戀三年宵统,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了税肪。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,809評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖益兄,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情箭券,我是刑警寧澤净捅,帶...
    沈念sama閱讀 34,504評(píng)論 4 334
  • 正文 年R本政府宣布,位于F島的核電站辩块,受9級(jí)特大地震影響蛔六,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜废亭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,150評(píng)論 3 317
  • 文/蒙蒙 一国章、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧豆村,春花似錦液兽、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至粗恢,卻和暖如春柑晒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背眷射。 一陣腳步聲響...
    開封第一講書人閱讀 32,121評(píng)論 1 267
  • 我被黑心中介騙來泰國(guó)打工匙赞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人妖碉。 一個(gè)月前我還...
    沈念sama閱讀 46,628評(píng)論 2 362
  • 正文 我出身青樓涌庭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親嗅绸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子脾猛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,724評(píng)論 2 351

推薦閱讀更多精彩內(nèi)容