启动AWS EC2实例时,如何使用bash脚本运行postgres?

时间:2017-01-24 12:35:21

标签: bash postgresql amazon-web-services amazon-ec2 geoserver

我正在测试EC2的一些设置以运行geoserver。在启动EC2实例时,我有一个bash脚本来加快速度。然而,当它到达创建postgres数据库时,它失败了。下面是脚本的摘录,它似乎在第二行之后失败:

chown postgres /usr/local/pgsql/data
sudo su postgres
initdb -D /usr/local/pgsql/data
postgres -D /usr/local/pgsql/data &
exit

yum install gcc make gcc-c++ libtool libxml2-devel -y
# ..... etc etc

我已经通过SSH连接到一个实例,手动运行上面的代码,然后从该实例生成AMI。我仍然想知道如何为Amazon linux创建一个bash脚本,也可以启动postgres。

1 个答案:

答案 0 :(得分:1)

您无法在脚本中放置sudo su postgres以使后续行由postgres用户执行。你需要写一下:

chown postgres /usr/local/pgsql/data

sudo -u postgres initdb -D /usr/local/pgsql/data
sudo -u postgres -D /usr/local/pgsql/data &

yum install ...