Philipp Schafft wrote: > Can you please try installing and purging again? if you only install > muroard there should be no problem with *dnet* as it is a depends of > libroar0 not muroard.
I have done that with the following results:
$ sudo apt-get remove --purge muroard
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
muroard*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 81.9 kB disk space will be freed.
Do you want to continue [Y/n]?
(Reading database ... 282131 files and directories currently installed.)
Removing muroard ...
Stopping muRoarD: muroard.
Purging configuration files for muroard ...
userdel: user muroard is currently logged in
Processing triggers for man-db ...
The message "userdel: user muroard is currently logged in" is telling.
That is the root of the problem. Processes are still running and
therefore the userdel is failing to remove the user.
The manual says:
userdel will not allow you to remove an account if there are running
processes which belong to this account. In that case, you may have to
kill those processes or lock the user's password or account and remove
the account later. The -f option can force the deletion of this
account.
I instrumented the postrm with a 'ps|grep' and found:
The following packages will be REMOVED:
muroard*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 81.9 kB disk space will be freed.
Do you want to continue [Y/n]?
(Reading database ... 282131 files and directories currently installed.)
Removing muroard ...
Stopping muRoarD: muroard.
Purging configuration files for muroard ...
root 28472 26580 0 15:39 pts/25 00:00:00 sudo apt-get remove
--purge muroard
root 28473 28472 22 15:39 pts/25 00:00:00 apt-get remove
--purge muroard
root 28477 28473 32 15:39 pts/28 00:00:00 /usr/bin/dpkg
--status-fd 15 --force-depends --force-remove-essential --purge muroard
root 28501 28477 0 15:39 pts/28 00:00:00 /bin/sh
/var/lib/dpkg/info/muroard.postrm purge
root 28503 28501 0 15:39 pts/28 00:00:00 grep muroard
muroard 28463 1 1 15:39 ? 00:00:00 /usr/bin/muroard --bind
/tmp/roar --unix
userdel: user muroard is currently logged in
Processing triggers for man-db ...
The problem appears to be that the muroard process takes a non-zero
time to exit after having been told to stop in the init.d script. I
wondered how long this process continued to run. I modified the
postrm script in this way:
case "$1" in
purge)
while [ $(ps -ef | awk '$1 == "muroard"' | wc -l) -gt 0 ]; do
echo "Waiting for muroard process to exit..."
sleep 1
done
if getent passwd|grep -q ^muroard: ; then
That is not intended for any deployment but made an interesting test
case to get some debug information. It produced the following output:
The following packages will be REMOVED:
muroard*
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 81.9 kB disk space will be freed.
Do you want to continue [Y/n]?
(Reading database ... 282131 files and directories currently installed.)
Removing muroard ...
Stopping muRoarD: muroard.
Purging configuration files for muroard ...
Waiting for muroard process to exit...
Processing triggers for man-db ...
That tells me that for perhaps one second the process is still
running. But I am NOT proposing making any changes in the postrm.
That was just part of the investigation.
I believe the best corrective action is to ensure in the init script
file /etc/init.d/muroard that start-stop-daemon ensures that the
process has actually exited before the script exits. Currently it
does:
start-stop-daemon --stop --pidfile /var/run/muroard.pid --user muroard --exec
/usr/bin/muroard || true
I believe that start-stop-daemon can do all of the required action
here. I recall --stop and --retry=schedule but will need to look into
it a bit further. I will investigate that a little more and reply
with more in a bit. The best case is so that when the script asks for
the daemon to stop that it does the right thing there.
Bob
signature.asc
Description: Digital signature

