On Thu, Mar 29, 2018 at 3:02 AM, Qi, Fuli <[email protected]> wrote:
>
>
>> -----Original Message-----
>> From: Dan Williams [mailto:[email protected]]
>> Sent: Thursday, March 15, 2018 3:20 AM
>> To: Qi, Fuli/斉 福利 <[email protected]>
>> Cc: linux-nvdimm <[email protected]>
>> Subject: Re: [RFC PATCH v4] ndctl: monitor: add ndctl monitor daemon
>>
>> On Tue, Mar 13, 2018 at 4:33 AM, QI Fuli <[email protected]> wrote:
>> > This is the v4 patch for ndctl monitor daemon, a tiny daemon to monitor the
>> > smart events of nvdimm DIMMs. Users can run a monitor as a one-shot
>> command
>> > or a daemon in background by using the [--daemon] option. DIMMs to monitor
>> > can be selected by [--dimm] [--bus] [--region] [--namespace] options.
>> > When a smart event fires, monitor daemon will log the notification which
>> > including dimm health status to syslog or a logfile by setting [--log] 
>> > option.
>> > The notification follows json format and can be consumed by log collectors
>> > like Fluented.
>> >
>> > For example, a monitor daemon can be started by the following command:
>> > # ndctl monitor --dimm nmem1 --log /var/log/monitor.log --daemon
>> daemon-name
>> >
>> > Then check the monitor daemon status by using systemd:
>> > # systemctl status [email protected]
>> >
>> > To stop the monitor daemon by:
>> > # systemctl stop [email protected]
>> >
>> > Also, a monitor daemon can be started by systemd:
>> > # systemctl start ndctl-monitor.service
>> > Which monitors all dimms.
>> >
>> > In this implemention, when a ndctl monitor starts with [--daemon] option, 
>> > all
>> > the arguments will be saved into a temp file named as daemon-name and 
>> > placed
>> > under /etc/sysconfig/ndctl/ directory. The temp file would be used as an
>> > EnvironmentFile by systemd, and it would be deleted automatically when the
>> > systemd service is stopped.
>>
>> The monitors started by hand should be kept separate from the monitors
>> started by systemd. The default monitor started by systemd should get
>> its configuration from /etc/ndctl.conf, and we should otherwise have a
>> --conf-file option to the monitor to override the default
>> configuration. Any other monitors started outside of the systemd
>> should remain independent.
>>
>
> I prefer to add an EnvironmentFile like /etc/sysconfig/ndctl/monitor to 
> systemd
> rather than add a configuration file. According to [1], environment variable
> substitution is supported in systemd.service, so we can define the variables 
> through
> "EnvironmentFile=/etc/sysconfig/ndctl/monitor".
> In this fashion, we do not need to add any extra codes to parse the 
> configuration file.
>
> In this case, [--conf-file] option is not necessary either.
> According to [2], sytemd units can be instantiated from a template file, thus 
> we only
> need to add a template unit file in advance.
> If user wants to run multiple monitors with different configurations, they 
> can differentiate
> them by adding multiple EnvironmentFiles, like 
> /etc/sysconfig/ndctl/<monitor1...n>.
> Then the monitors can be started by command like
> "# systemctl start ndctl-monitor@<monitor1...n>.service".
>
> When the monitors started by hand, it will do not need any configuration 
> files,
> because we can add options and parameters directly.
>
> [1]https://www.freedesktop.org/software/systemd/man/systemd.service.html
> [2]https://www.freedesktop.org/software/systemd/man/systemd.unit.html

This seems to needlessly tie ndctl to systemd, it should be able to
operate without requiring systemd. I expect it would be
straightforward to copy the configuration file implementation from
git.
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to