2014-09-16 17:58 GMT+03:00 Eric V. Smith <[email protected]>:

> I run multiple copies of sec in order to independently monitor multiple
> log files. I'm moving to Fedora 20, and I'd like to run sec from systemd
> instead of using init.d shell scripts.
>
> Fedora (and all other distros I've seen) provide a sample sec.service
> file that just runs a single instance of sec.
>
> I think what I need to do is copy the supplied sec.service once for each
> instance of sec I want to run, and modify it to have the specific
> parameters I want. Then I'd never start sec.service itself, but only
> start my copied (and renamed) service files. I don't think using systemd
> "instantiated services" (aka templates) buys me anything, because I
> can't individually control the parameters to each sec instance with
> enough granularity.
>
> Anyway, I'm just asking here to see if anyone has given this any
> thought, and maybe came to a different conclusion. I've searched the
> archives, and while there's some systemd chatter, I couldn't find
> anything talking about systemd and multiple sec instances.
>
> Thanks.
> Eric.
>
>
I have to acknowledge that I am not an expert of systemd, but when googling
I have discovered a relevant page about the topic:
http://zero-knowledge.org/post/92
It follows your idea of setting up several systemd service files, and it
appears systemd has some builtin support for this. Following the
suggestions from the above page, I copied sec.service file to [email protected],
and edited the latter by adding %I variable to relevant places:

[Unit]
Description=Simple Event Correlator script to filter log file entries
After=syslog.target

[Service]
Type=forking
PIDFile=/run/sec-%I.pid
ExecStart=/usr/bin/sec -detach -pid=/run/sec-%I.pid -conf=/etc/sec/*.sec-%I
-input=/var/log/messages -log=/var/log/sec-%I -intevents

[Install]
WantedBy=multi-user.target

I also copied [email protected] to [email protected], and when issuing the
following commands

systemctl start sec@my2
systemctl start sec@my

these processes appear in the process table:

root     19842     1  0 16:22 ?        00:00:00 /usr/bin/perl -w
/usr/bin/sec -detach -pid=/run/sec-my2.pid -conf=/etc/sec/*.sec-my2
-input=/var/log/messages -log=/var/log/sec-my2 -intevents
root     19850     1  0 16:22 ?        00:00:00 /usr/bin/perl -w
/usr/bin/sec -detach -pid=/run/sec-my.pid -conf=/etc/sec/*.sec-my
-input=/var/log/messages -log=/var/log/sec-my -intevents

Also, when doing systemctl start sec, a third process will be started with
default parameters from sec.service. So it seems to me that your idea about
having several files is supported by systemd. Also, if you manage to use %I
for describing all instance specific command line options, you can have
just one real file to edit, while additional sec instance can be set up by
creating a symbolic (or hard) link to this file.

However, maybe there are some experienced systemd fans in this list who
would be able to describe one-file-no-symlinks approach for handling the
issue...

kind regards,
risto
------------------------------------------------------------------------------
Want excitement?
Manually upgrade your production database.
When you want reliability, choose Perforce
Perforce version control. Predictably reliable.
http://pubads.g.doubleclick.net/gampad/clk?id=157508191&iu=/4140/ostg.clktrk
_______________________________________________
Simple-evcorr-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/simple-evcorr-users

Reply via email to