解決mongo無法使用service啓動,且無日誌打印
安全加固,升級ssh,並重啓後,導致mongo無法啓動的問題
現象:
使用service mongod start啓動服務,無法啓動,並且沒有任何mongo日誌打印
初步判斷爲加固後,部分lib庫權限不夠。
進一步操作確定:
修改 /etc/init.d/mongod 將啓動mongod時的打印日誌打印到屏幕
vi /etc/init.d/mongod
將
daemon --user "$MONGO_USER" --check $mongod "$NUMACTL $mongod $OPTIONS >/dev/null 2>&1"
註釋掉
換爲
daemon --user "$MONGO_USER" --check $mongod "$NUMACTL $mongod $OPTIONS "
使用 service mongod start 啓動服務
屏幕將顯示打印的問題
比如:[root@localhost init.d]# service mongod start Starting mongod: /usr/bin/mongod: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory [FAILED]
或者提示某個庫缺少權限等錯誤。
這裏基本確定就是lib庫無權限了。使用ldd命令找到該庫位置。
[root@192 HubStb]# ldd /usr/bin/mongod linux-vdso.so.1 => (0x00007ffd085ef000) libssl.so.10 => /usr/lib64/libssl.so.10 (0x00002b84ba1d2000) libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x00002b84ba440000) librt.so.1 => /lib64/librt.so.1 (0x00002b84ba824000) libdl.so.2 => /lib64/libdl.so.2 (0x00002b84baa2c000) libm.so.6 => /lib64/libm.so.6 (0x00002b84bac31000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00002b84baeb5000) libpthread.so.0 => /lib64/libpthread.so.0 (0x00002b84bb0cb000) libc.so.6 => /lib64/libc.so.6 (0x00002b84bb2e9000) /lib64/ld-linux-x86-64.so.2 (0x0000003598000000) libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00002b84bb67d000) libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00002b84bb8c1000) libcom_err.so.2 => /lib64/libcom_err.so.2 (0x00002b84bbba8000) libk5crypto.so.3 => /lib64/libk5crypto.so.3 (0x00002b84bbdac000) libz.so.1 => /lib64/libz.so.1 (0x00002b84bbfd8000) libkrb5support.so.0 => /lib64/libkrb5support.so.0 (0x00002b84bc1ef000) libkeyutils.so.1 => /lib64/libkeyutils.so.1 (0x00002b84bc3fa000) libresolv.so.2 => /lib64/libresolv.so.2 (0x00002b84bc5fd000) libselinux.so.1 => /lib64/libselinux.so.1 (0x00002b84bc818000)
到對應庫目錄下賦予權限,如果是軟連接方式,還需將軟連接指向的庫文件也賦權限。比如:
cd /lib64/ chmod 777 libz*
重複2 到 4 步驟,直到重啓成功。
將/etc/init.d/mongod還原,也可不還原。