歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> 關於Linux >> postgres中SELINUX

postgres中SELINUX

日期:2017/3/1 15:17:09   编辑:關於Linux
postgres中SELINUX Linux Postgresql Log中出現Do you want to choose a different one?的解決方法 前幾天,公司要裝Postgresql 數據庫,並且要加入Linux的Service裡,部分腳本如下: case $1 in start) echo -n "Starting PostgreSQL: " su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; stop) echo -n "Stopping PostgreSQL: " su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" echo "ok" ;; restart) echo -n "Restarting PostgreSQL: " su - $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" su - $PGUSER -c "$DAEMON -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; reload) echo -n "Reload PostgreSQL: " su - $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" echo "ok" ;; status) su - $PGUSER -c "$PGCTL status -D '$PGDATA'" ;; *) # Print help echo "Usage: $0 {start|stop|restart|reload|status}" 1>&2 exit 1 ;; *) 在 Linux系統裡用service 命令啟動都是正常,但是系統重啟後該服務就是起不來。後來發現Postgresql 的log中有這麼一句話:Do you want to choose a different one? 剛開始就是不能理解,後來發現系統啟動了SELinux,在網上一查,有的Linux 發行版中的SELinux對於 su user -c 命令不是很友好。 後來我改用runuser命令,問題就解決了。修改後的腳本如下: case $1 in start) echo -n "Starting PostgreSQL: " runuser -s /bin/bash $PGUSER -c "$DAEMON -i -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; stop) echo -n "Stopping PostgreSQL: " runuser -s /bin/bash $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast" echo "ok" ;; restart) echo -n "Restarting PostgreSQL: " runuser -s /bin/bash $PGUSER -c "$PGCTL stop -D '$PGDATA' -s -m fast -w" runuser -s /bin/bash $PGUSER -c "$DAEMON -i -D '$PGDATA' &" >>$PGLOG 2>&1 echo "ok" ;; reload) echo -n "Reload PostgreSQL: " runuser -s /bin/bash $PGUSER -c "$PGCTL reload -D '$PGDATA' -s" echo "ok" ;; status) runuser -s /bin/bash $PGUSER -c "$PGCTL status -D '$PGDATA'" ;; *)
Copyright © Linux教程網 All Rights Reserved