:: Re: [DNG] Error: systemd required.
Etusivu
Poista viesti
Vastaa
Lähettäjä: Marjorie Roome
Päiväys:  
Vastaanottaja: dng
Aihe: Re: [DNG] Error: systemd required.
Hi,

On Mon, 2025-11-10 at 22:41 +0100, Nick via Dng wrote:
> On 11/10/25 10:28 PM, ael via Dng wrote:
> > On Sun, Nov 09, 2025 at 06:58:07PM +0200, Lars Noodén via Dng
> > wrote:
> > > On 11/9/25 18:48, tito via Dng wrote:
> > > > Cisco Secure Client Support for Linux
> > > > Linux Requirements
> > > [snip]
> > >
> > > Just a guess, but would it be possible to disassemble the
> > > installation
> > > script's package and comment out the systemd parts and then
> > > replace the unit
> > > file manually with an appropriate service script?  I followed the
> > > link but
> > > could not spot the actual package to check there.
> > >
> > I have now collected another copy of the installation script and it
> > is just
> > shell.
> >
> > At first sight it should be fairly easy to modify it, at least for
> > someone who knows a bit about systemd. Of course most of the people
> > here
> > are experts in that: so far I have avoided getting too deeply
> > involved.
> > So far as I can see it is only installing the service scripts, but
> > I
> > guess that I won't know if it is using some systemd API until
> > later.
> >
> > I see
> > SYSTEMD_CONF_DIR="/etc/systemd/system"
> >
> > [.....]
> >
> > if [ -z "${TESTINIT##*"systemd"*}" ]; then
> >    echo systemctl daemon-reexec >> /tmp/${LOGFNAME}
> >    systemctl daemon-reexec >> /tmp/${LOGFNAME} 2>&1
> >    # try stop vpnagentd service first in case user is upgrading
> > from old version which doesn't have the proper unintall script
> >    echo systemctl stop ${SYSTEMD_CONF} >> /tmp/${LOGFNAME}
> >    systemctl stop ${SYSTEMD_CONF} >> /tmp/${LOGFNAME} 2>&1
> >    echo systemctl disable ${SYSTEMD_CONF} >> /tmp/${LOGFNAME}
> >    systemctl disable ${SYSTEMD_CONF} >> /tmp/${LOGFNAME} 2>&1
> >
> >    echo "install systemd config" >> /tmp/${LOGFNAME}
> >    echo "Installing "${NEWTEMP}/${SYSTEMD_CONF} >> /tmp/${LOGFNAME}
> >    echo ${INSTALL} -o root -m 644 ${NEWTEMP}/${SYSTEMD_CONF}
> > ${SYSTEMD_CONF_DIR}/${SYSTEMD_CONF} >> /tmp/${LOGFNAME}
> >    ${INSTALL} -o root -m 644 ${NEWTEMP}/${SYSTEMD_CONF}
> > ${SYSTEMD_CONF_DIR}/${SYSTEMD_CONF} || exitInstallation 1
> >
> >    echo systemctl enable ${SYSTEMD_CONF} >> /tmp/${LOGFNAME}
> >    systemctl enable ${SYSTEMD_CONF} >> /tmp/${LOGFNAME} 2>&1
> >
> >    echo "Starting ${CLIENTNAME} Agent..."
> >    echo "Starting ${CLIENTNAME} Agent..." >> /tmp/${LOGFNAME}
> >
> >    echo systemctl start ${SYSTEMD_CONF} >> /tmp/${LOGFNAME}
> >    systemctl start ${SYSTEMD_CONF} >> /tmp/${LOGFNAME} 2>&1 ||
> > exitInstallation 1
> > else
> >    echo "Error: systemd required." >> /tmp/${LOGFNAME} ||
> > exitInstallation 1
> >
> > --------------------------------------------------
> >
> > I guess that I should be able to rewrite that section with a bit of
> > effort. I suppose all of you here who have had to rewrite such
> > stuff
> > repeatedly would do it in a few minutes... :-)
> >
> > ael
> >
> Looking at the packaged vpnagentd.service file I think with these
> information:
>
> ExecStartPre=/opt/cisco/secureclient/bin/load_tun.sh
> ExecStart=/opt/cisco/secureclient/bin/vpnagentd -execv_instance
> ExecReload=/bin/kill -HUP $MAINPID
> PIDFile=/var/run/vpnagentd.pid
> EnvironmentFile=/etc/environment
>
> It should be possible to create a basic sysv script. And looking at
> the
> number of *.sh files in the package you wonder why they did not make
> one.
>

There was program sysd2v.sh (v0.3), a bash script, to convert a systemd
'service file to a sysvinit equivalent. In the past I've found that it
worked if the service file is fairly straightforward.

When I search I'm also finding a python script that claims to do the
same, and maybe more, at:
https://github.com/0xalwayslucky/Sysd2v

I can't test it on your .service file as what you have provided is only
a snippet and so incomplete, but it does seem to produce credible
outputs on some examples on my system.

--
Marjorie