Tôi đang sử dụng bóp debian với PostgreSQL 9.1 từ backport. Con rối có phiên bản 2.7,14. Thật không may, tập lệnh init trả về mã thoát sai cho trạng thái. Vì vậy, tôi đã viết một status
lệnh tùy chỉnh để phát hiện xem postgresql có chạy hay không.
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "pg_lsclusters -h | awk 'BEGIN {rc=0} {if ($4 != \"online\") rc=3} END { exit rc }'",
provider => debian,
}
Lệnh của tôi hoạt động như một lá bùa, nhưng con rối dường như có vấn đề. Tôi luôn luôn nhận được notice: /Stage[main]/Postgresql/Service[postgresql]/ensure: ensure changed 'stopped' to 'running'
mặc dù nó đã chạy.
Vì vậy, đã thử như sau:
service { 'postgresql':
ensure => running,
enable => true,
hasstatus => false,
hasrestart => true,
status => "exit 0",
provider => debian,
}
Theo tôi hiểu status
lệnh tùy chỉnh này , con rối nên luôn nghĩ rằng postgresql đang chạy. Tuy nhiên, con rối cố gắng bắt đầu postgresql - mọi lúc.
Lỗi của tôi là gì Hay là một lỗi trong con rối?
status
lệnh của con rối hoạt động như mong đợi!
provider => init
(và xóaenable
tham số).