Cân nhắc sử dụng tập lệnh để đọc cấu hình ngược dòng, sửa đổi nó và nhổ nó ra tập tin thả vào.
Ví dụ: tôi sử dụng Chef và đây là một mảnh ruby (thư viện) phân tích tệp đơn vị marathon systemd để lấy ExecStart gốc từ nó
require 'inifile'
module Dcos
def get_execstart_from_unit_file
marathon_systemd_unit_file =
IniFile.load('/etc/systemd/system/dcos-marathon.service')
return marathon_systemd_unit_file['Service']['ExecStart']
end
end
Sau đó, trong công thức, tôi tạo tệp thả xuống để chắp thêm tùy chọn vào ExecStart
chef_gem 'inifile'
exec_start_orig = get_execstart_from_unit_file
systemd_service_drop_in 'dcos-marathon' do
override 'dcos-marathon.service'
precursor 'Service' => { 'ExecStart' => nil }
service do
exec_start exec_start_orig + ' --env_vars_prefix "DCOS_MARATHON_"'
end
end