Ubuntu 14.04を使用しています。 rootとしてログインした状態で、別のコマンド(postgres)でコマンドを実行してみました。しかし失敗した
root@remotebox:/home/rails/myproject# su - postgres 'pg_upgradecluster 9.3 main'
-su: pg_upgradecluster 9.3 main: No such file or directory
私は何が間違っていましたか?
答え1
'pg_upgradecluster 9.3 main'
postgresユーザーのプライマリシェルに渡したいです。 postgresユーザー設定によっては、'pg_upgradecluster 9.3 main'
postgres PATHでファイルを実行することを意味する可能性があり、これが「該当するファイルまたはディレクトリなし」エラーが発生する理由です。
引数をコマンド(-c)に渡してみてください。
su - postgres -c 'pg_upgradecluster 9.3 main'
シェルとして:
su - postgres -s /path/to/pg_upgradecluster -- 9.3 main
または、明示的にシェルを選択します。
su - postgres -s /bin/bash -- -c 'pg_upgradecluster 9.3 main'