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
