:: Re: [DNG] Error: systemd required.
Top Page
Delete this message
Reply to this message
Author: Nick
Date:  
To: dng
Subject: Re: [DNG] Error: systemd required.
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.