歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

postgres中SELINUX

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