Auteur Sujet: Comprendre d'où vient l'erreur "Failed unmounting /home"  (Lu 9322 fois)

0 Membres et 1 Invité sur ce sujet

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #12 le: 21 juin 2021 à 11:16:16 »
# id -u speedtest
1001

/run/user/1001 n'est pas crée automatiquement, il y a juste /run/user/1000 c'est à moi de le créer et de lui sonner les droits ?

Le fichier /home/speedtest/bin/OoklaServer.pid a été crée par le programme d'installation et pas mis à jour ensuite, il contient le ID du premier lancement.

Je me demande si on ne peut pas reprendre des bout de code du script qui permet de lancer / arrêter le serveur :

Start:
start() {
        printf "Starting $DAEMON_FILE"
        dir_full=`pwd`
        if [ -f "$DAEMON_FILE" ]; then
                chmod +x "$DAEMON_FILE"
                daemon_cmd="./$DAEMON_FILE --daemon --pidfile=$dir_full/$PID_FILE"
                # echo "$daemon_cmd"
                `$daemon_cmd`
        else
                echo ""
                echo "Daemon not installed. Please run install first."
                exit 1
        fi

        # wait for PID file to be created and verify daemon started

        for i in 1 2 3 4 5 6 7 8 9 10; do
                sleep 1
                if [ -f "$PID_FILE" ]; then break; fi
                printf " ."
        done
        echo ""
    if [ -f "$PID_FILE" ]; then
                daemon_pid=`cat $PID_FILE`
                echo "Daemon Started ($daemon_pid)"
        else
                echo "Failed to Start Daemon"
        fi
}

Stop :
stop_process() {
        daemon_pid="$1"
        printf "Stopping $DAEMON_FILE Daemon ($daemon_pid)"
        kill "$daemon_pid" >/dev/null 2>&1
        for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20; do
                if kill -0 "$daemon_pid" >/dev/null 2>&1 ; then
                        sleep 1
                        printf " ."
                else
                        break
                fi
        done
        echo ""
}

stop_if_running() {
        if [ -f "$PID_FILE" ]; then
                daemon_pid=`cat $PID_FILE`
                if [ $daemon_pid ]; then
                        stop_process "$daemon_pid"
                        if has_command pgrep; then
                                pids=$(pgrep OoklaServer 2>&1)
                                if [ -n "$pids" ]; then
                                        echo "Additional $DAEMON_FILE processes running; stopping"
                                        for daemon_pid in $pids; do
                                                stop_process "$daemon_pid"
                                        done
                                        pids=$(pgrep OoklaServer 2>&1)
                                        if [ -n "$pids" ]; then
                                                echo "Lingering $DAEMON_FILE processes running; killing ($pids)"
                                                kill -9 $pids
                                        fi
                                fi
                        fi
                fi
        fi
}

kgersen

  • Modérateur
  • Abonné Free Pro
  • *
  • Messages: 8 411
  • Paris (75)
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #13 le: 21 juin 2021 à 11:28:29 »
Ce code fait rien de plus qu'un kill (sigterm) puis un kill -9 (sigkill) après 20 secondes. il cherche ensuite tous les process nommés 'OoklaServer' et les tue.

Ca reviendra au meme de faire la version type=Simple avec TimeoutStopSec=20s.

tu peux éventuellement ajouté "ExitType=cgroup" si le programme crée plusieurs process.

Franchement si ton serveur ne reboot pas souvent et si tuer le service violement (kill) ne pose pas de problème. La méthode type=simple reste la plus simple.

apres tu peux utiliser le script en le mettant dans ExecStop.


vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #14 le: 21 juin 2021 à 21:04:19 »
si le programme crée plusieurs process.

Si je fais un ps -ef je ne vois que deux process :

# ps -ef | grep Ookla
speedte+  1388     1  0 juin10 ?       00:00:27 /home/speedtest/bin/OoklaServer --daemon
root      4509  4482  0 20:50 pts/0    00:00:00 grep --color=auto Ookla
speedte+ 10089  1388 25 juin11 ?       2-15:08:04 /home/speedtest/bin/OoklaServer --ward --server-id=78c4e3dc-26df-4d60-957e-c49eb1cf5e67

Si je fais htop : (le serveur a aussi nPerf qui tourne)

kgersen

  • Modérateur
  • Abonné Free Pro
  • *
  • Messages: 8 411
  • Paris (75)
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #15 le: 21 juin 2021 à 21:30:50 »
c'est des process indépendants ou ont-ils tous le meme parent que le process qui a le pid dans le fichier ?

"ps faux" ca donne quoi ?

et compare avec le contenu de /home/speedtest/bin/OoklaServer.pid



vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #16 le: 21 juin 2021 à 21:35:40 »
OoklaServer.pid est pas mis à jour, car je n'utilise pas leur script. Il contient un seul pid.

Comparaison Ookla / nPerf / Apache :
# ps faux | grep Ookla
speedte+  1388  0.0  0.0 203372    40 ?        Ssl  juin10   0:27 /home/speedtest/bin/OoklaServer --daemon
speedte+ 10089 25.9  1.0 4554532 343880 ?      Sl   juin11 3806:23  \_ /home/speedtest/bin/OoklaServer --ward --server-id=78c4e3dc-26df-4d60-957e-c49eb1cf5e67

# ps faux | grep nperf
nperf-s+ 19091 21.6  0.4 994332 137364 ?       Ssl  juin18 1077:29 /usr/bin/nPerfServer -x --pidfile=/var/lib/nperf-server/nPerfServer.pid -p 8081 -t 8443 --uuidfile=/var/lib/nperf-server/nPerfServer.uuid -i ::

# ps faux | grep apache
root      1804  0.0  0.0 337464 19072 ?        Ss   juin10   0:46 /usr/sbin/apache2 -k start
www-data 19260  0.0  0.0 345028 19340 ?        S    05:54   0:07  \_ /usr/sbin/apache2 -k start
www-data 19261  0.0  0.0 344996 20604 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19262  0.0  0.0 344980 19524 ?        S    05:54   0:07  \_ /usr/sbin/apache2 -k start
www-data 19263  0.0  0.0 344952 20316 ?        S    05:54   0:07  \_ /usr/sbin/apache2 -k start
www-data 19264  0.0  0.0 345012 20068 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19265  0.0  0.0 345024 18928 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19266  0.0  0.0 345036 20044 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19267  0.0  0.0 344992 18884 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19268  0.0  0.0 345000 20944 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19269  0.0  0.0 345008 19640 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19270  0.0  0.0 345020 20028 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19271  0.0  0.0 345000 19412 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19272  0.0  0.0 345000 19784 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19273  0.0  0.0 344864 19712 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19274  0.0  0.0 345024 18868 ?        S    05:54   0:07  \_ /usr/sbin/apache2 -k start
www-data 19275  0.0  0.0 345024 19168 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19276  0.0  0.0 344932 20216 ?        S    05:54   0:10  \_ /usr/sbin/apache2 -k start
www-data 19277  0.0  0.0 345004 18912 ?        S    05:54   0:10  \_ /usr/sbin/apache2 -k start
www-data 19278  0.0  0.0 344832 19616 ?        S    05:54   0:10  \_ /usr/sbin/apache2 -k start
www-data 19279  0.0  0.0 344948 19872 ?        S    05:54   0:07  \_ /usr/sbin/apache2 -k start
www-data 19280  0.0  0.0 344996 20044 ?        S    05:54   0:10  \_ /usr/sbin/apache2 -k start
www-data 19281  0.0  0.0 345020 20020 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19282  0.0  0.0 345008 21052 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19283  0.0  0.0 345004 20872 ?        S    05:54   0:11  \_ /usr/sbin/apache2 -k start
www-data 19284  0.0  0.0 345164 19928 ?        S    05:54   0:09  \_ /usr/sbin/apache2 -k start
www-data 19285  0.0  0.0 345016 18900 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19287  0.0  0.0 345004 20016 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19289  0.0  0.0 345016 20660 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 19291  0.0  0.0 345020 19732 ?        S    05:54   0:07  \_ /usr/sbin/apache2 -k start
www-data 19293  0.0  0.0 344896 19800 ?        S    05:54   0:08  \_ /usr/sbin/apache2 -k start
www-data 23013  0.0  0.0 345044 19712 ?        S    06:48   0:09  \_ /usr/sbin/apache2 -k start
www-data 23014  0.0  0.0 344940 19780 ?        S    06:48   0:09  \_ /usr/sbin/apache2 -k start
www-data 23015  0.0  0.0 344992 19944 ?        S    06:48   0:08  \_ /usr/sbin/apache2 -k start
www-data 25656  0.0  0.0 345008 19160 ?        S    07:36   0:09  \_ /usr/sbin/apache2 -k start
www-data 25657  0.0  0.0 345004 19748 ?        S    07:36   0:06  \_ /usr/sbin/apache2 -k start
www-data 30337  0.0  0.0 345620 20392 ?        S    09:00   0:08  \_ /usr/sbin/apache2 -k start
www-data 30944  0.0  0.0 344932 19784 ?        S    09:11   0:07  \_ /usr/sbin/apache2 -k start
www-data 31703  0.0  0.0 344868 18920 ?        S    09:28   0:06  \_ /usr/sbin/apache2 -k start
www-data 31704  0.0  0.0 344948 19148 ?        S    09:28   0:09  \_ /usr/sbin/apache2 -k start
www-data 31711  0.0  0.0 344952 19604 ?        S    09:30   0:07  \_ /usr/sbin/apache2 -k start
www-data  9704  0.0  0.0 344888 19140 ?        S    12:39   0:06  \_ /usr/sbin/apache2 -k start
www-data  9705  0.0  0.0 344888 19716 ?        S    12:39   0:07  \_ /usr/sbin/apache2 -k start
www-data  9706  0.0  0.0 344884 18788 ?        S    12:39   0:07  \_ /usr/sbin/apache2 -k start
www-data 17893  0.0  0.0 344796 19532 ?        S    15:07   0:04  \_ /usr/sbin/apache2 -k start
www-data 17894  0.0  0.0 344860 18772 ?        S    15:07   0:03  \_ /usr/sbin/apache2 -k start
www-data 17895  0.0  0.0 344808 19472 ?        S    15:07   0:04  \_ /usr/sbin/apache2 -k start

kgersen

  • Modérateur
  • Abonné Free Pro
  • *
  • Messages: 8 411
  • Paris (75)
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #17 le: 21 juin 2021 à 21:42:10 »
donc y'a bien une hiérarchie de processes.
pstree -ap 1388 
devrait l'afficher.

si tu fais "kill -0 1388" cela arrete t'il bien tout les process ?

dans ce cas il manque juste "ExitType=cgroup" dans le fichier .service:

[Unit]
Description=service speedtest Ookla
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/home/speedtest/bin/OoklaServer
ExitType=cgroup
Restart=always
RestartSec=15
User=speedtest
TimeoutStopSec=90s
[Install]
WantedBy=multi-user.target

si l'arret du service met encore 90s dans cas y'a que la solution de mettre TimeoutStopSec a 10s.

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #18 le: 21 juin 2021 à 21:55:52 »
kill -0 1388 ne kill rien du tout, c'est inefficace pour ce process.

J'ai tenté plusieurs fois, mais il est toujours là avec ses petits.

donc y'a bien une hiérarchie de processes.
pstree -ap 1388 
devrait l'afficher.
# pstree -ap 1388 
OoklaServer,1388 --daemon
  ├─OoklaServer,10089 --ward --server-id=78c4e3dc-26df-4d60-957e-c49eb1cf5e67
  │   ├─{OoklaServer},10090
  │   ├─{OoklaServer},10091
  │   ├─{OoklaServer},10092
  │   ├─{OoklaServer},10093
  │   ├─{OoklaServer},10094
  │   ├─{OoklaServer},10095
  │   ├─{OoklaServer},10096
  │   ├─{OoklaServer},10097
  │   ├─{OoklaServer},10098
  │   ├─{OoklaServer},10099
  │   ├─{OoklaServer},10100
  │   ├─{OoklaServer},10101
  │   ├─{OoklaServer},10102
  │   ├─{OoklaServer},10103
  │   ├─{OoklaServer},10104
  │   ├─{OoklaServer},10105
  │   ├─{OoklaServer},10106
  │   ├─{OoklaServer},10107
  │   ├─{OoklaServer},10108
  │   ├─{OoklaServer},10109
  │   ├─{OoklaServer},10110
  │   ├─{OoklaServer},10111
  │   ├─{OoklaServer},10112
  │   ├─{OoklaServer},10113
  │   ├─{OoklaServer},10114
  │   ├─{OoklaServer},10115
  │   ├─{OoklaServer},10116
  │   ├─{OoklaServer},10117
  │   ├─{OoklaServer},10118
  │   ├─{OoklaServer},10119
  │   ├─{OoklaServer},10120
  │   ├─{OoklaServer},10121
  │   ├─{OoklaServer},10122
  │   ├─{OoklaServer},10123
  │   ├─{OoklaServer},10124
  │   ├─{OoklaServer},10125
  │   ├─{OoklaServer},10126
  │   ├─{OoklaServer},10127
  │   ├─{OoklaServer},10128
  │   ├─{OoklaServer},10129
  │   ├─{OoklaServer},10130
  │   ├─{OoklaServer},10131
  │   ├─{OoklaServer},10132
  │   ├─{OoklaServer},5653
  │   ├─{OoklaServer},14178
  │   ├─{OoklaServer},2652
  │   ├─{OoklaServer},4214
  │   ├─{OoklaServer},4217
  │   ├─{OoklaServer},4233
  │   ├─{OoklaServer},5934
  │   ├─{OoklaServer},5942
  │   ├─{OoklaServer},7093
  │   ├─{OoklaServer},7094
  │   ├─{OoklaServer},7615
  │   ├─{OoklaServer},7642
  │   ├─{OoklaServer},8517
  │   ├─{OoklaServer},8520
  │   ├─{OoklaServer},8525
  │   ├─{OoklaServer},9285
  │   ├─{OoklaServer},9293
  │   ├─{OoklaServer},9300
  │   ├─{OoklaServer},9312
  │   ├─{OoklaServer},11875
  │   ├─{OoklaServer},17661
  │   ├─{OoklaServer},17668
  │   ├─{OoklaServer},17674
  │   ├─{OoklaServer},17675
  │   ├─{OoklaServer},17684
  │   ├─{OoklaServer},17700
  │   ├─{OoklaServer},17702
  │   ├─{OoklaServer},17705
  │   ├─{OoklaServer},17706
  │   ├─{OoklaServer},17708
  │   ├─{OoklaServer},17713
  │   ├─{OoklaServer},17714
  │   ├─{OoklaServer},17723
  │   ├─{OoklaServer},17810
  │   ├─{OoklaServer},17813
  │   ├─{OoklaServer},17829
  │   ├─{OoklaServer},17831
  │   ├─{OoklaServer},17881
  │   ├─{OoklaServer},17884
  │   ├─{OoklaServer},17885
  │   ├─{OoklaServer},17889
  │   ├─{OoklaServer},17890
  │   ├─{OoklaServer},17900
  │   ├─{OoklaServer},17903
  │   ├─{OoklaServer},18006
  │   ├─{OoklaServer},18023
  │   ├─{OoklaServer},18029
  │   ├─{OoklaServer},18038
  │   ├─{OoklaServer},18049
  │   ├─{OoklaServer},18063
  │   ├─{OoklaServer},18075
  │   ├─{OoklaServer},19585
  │   ├─{OoklaServer},19589
  │   ├─{OoklaServer},19591
  │   ├─{OoklaServer},19593
  │   ├─{OoklaServer},19594
  │   ├─{OoklaServer},19595
  │   ├─{OoklaServer},19596
  │   ├─{OoklaServer},19599
  │   ├─{OoklaServer},19600
  │   ├─{OoklaServer},19607
  │   ├─{OoklaServer},19609
  │   ├─{OoklaServer},19610
  │   ├─{OoklaServer},19611
  │   ├─{OoklaServer},19612
  │   ├─{OoklaServer},19613
  │   ├─{OoklaServer},19616
  │   ├─{OoklaServer},19617
  │   ├─{OoklaServer},19622
  │   ├─{OoklaServer},19628
  │   ├─{OoklaServer},19629
  │   ├─{OoklaServer},19631
  │   ├─{OoklaServer},19632
  │   ├─{OoklaServer},19636
  │   ├─{OoklaServer},19637
  │   ├─{OoklaServer},19640
  │   ├─{OoklaServer},19641
  │   ├─{OoklaServer},20246
  │   ├─{OoklaServer},20247
  │   ├─{OoklaServer},20249
  │   ├─{OoklaServer},20250
  │   ├─{OoklaServer},20252
  │   ├─{OoklaServer},20254
  │   ├─{OoklaServer},20256
  │   ├─{OoklaServer},22025
  │   ├─{OoklaServer},22026
  │   ├─{OoklaServer},22029
  │   ├─{OoklaServer},22030
  │   ├─{OoklaServer},22031
  │   ├─{OoklaServer},22033
  │   ├─{OoklaServer},22035
  │   ├─{OoklaServer},22036
  │   ├─{OoklaServer},22038
  │   ├─{OoklaServer},22040
  │   ├─{OoklaServer},22041
  │   ├─{OoklaServer},22045
  │   ├─{OoklaServer},22046
  │   ├─{OoklaServer},22047
  │   ├─{OoklaServer},22048
  │   ├─{OoklaServer},22049
  │   ├─{OoklaServer},22050
  │   ├─{OoklaServer},22055
  │   ├─{OoklaServer},22061
  │   ├─{OoklaServer},23526
  │   ├─{OoklaServer},23527
  │   ├─{OoklaServer},23528
  │   ├─{OoklaServer},23530
  │   ├─{OoklaServer},23531
  │   ├─{OoklaServer},23533
  │   ├─{OoklaServer},23534
  │   ├─{OoklaServer},23535
  │   ├─{OoklaServer},23536
  │   ├─{OoklaServer},23537
  │   ├─{OoklaServer},23538
  │   ├─{OoklaServer},23539
  │   ├─{OoklaServer},23541
  │   ├─{OoklaServer},30013
  │   ├─{OoklaServer},30015
  │   ├─{OoklaServer},30017
  │   ├─{OoklaServer},30018
  │   ├─{OoklaServer},30019
  │   ├─{OoklaServer},30020
  │   ├─{OoklaServer},30021
  │   ├─{OoklaServer},30023
  │   ├─{OoklaServer},30024
  │   ├─{OoklaServer},30025
  │   ├─{OoklaServer},30026
  │   ├─{OoklaServer},30027
  │   ├─{OoklaServer},30028
  │   ├─{OoklaServer},30029
  │   ├─{OoklaServer},30030
  │   ├─{OoklaServer},30031
  │   ├─{OoklaServer},30032
  │   ├─{OoklaServer},30033
  │   ├─{OoklaServer},30034
  │   ├─{OoklaServer},30039
  │   ├─{OoklaServer},30040
  │   ├─{OoklaServer},30042
  │   ├─{OoklaServer},30043
  │   ├─{OoklaServer},30044
  │   ├─{OoklaServer},30046
  │   ├─{OoklaServer},30094
  │   ├─{OoklaServer},30095
  │   ├─{OoklaServer},30097
  │   ├─{OoklaServer},30141
  │   ├─{OoklaServer},30147
  │   ├─{OoklaServer},30148
  │   ├─{OoklaServer},30149
  │   ├─{OoklaServer},30150
  │   ├─{OoklaServer},30152
  │   ├─{OoklaServer},30153
  │   ├─{OoklaServer},30193
  │   ├─{OoklaServer},30197
  │   ├─{OoklaServer},30199
  │   ├─{OoklaServer},30200
  │   ├─{OoklaServer},30201
  │   ├─{OoklaServer},30202
  │   ├─{OoklaServer},30203
  │   ├─{OoklaServer},30204
  │   ├─{OoklaServer},30205
  │   ├─{OoklaServer},30206
  │   ├─{OoklaServer},30208
  │   ├─{OoklaServer},30209
  │   ├─{OoklaServer},30210
  │   ├─{OoklaServer},30211
  │   ├─{OoklaServer},30212
  │   ├─{OoklaServer},30217
  │   ├─{OoklaServer},30218
  │   ├─{OoklaServer},30219
  │   ├─{OoklaServer},30220
  │   ├─{OoklaServer},30221
  │   ├─{OoklaServer},30222
  │   ├─{OoklaServer},30226
  │   ├─{OoklaServer},30227
  │   ├─{OoklaServer},30228
  │   ├─{OoklaServer},30229
  │   ├─{OoklaServer},30230
  │   ├─{OoklaServer},30231
  │   ├─{OoklaServer},30232
  │   ├─{OoklaServer},30256
  │   ├─{OoklaServer},30257
  │   ├─{OoklaServer},30258
  │   ├─{OoklaServer},30259
  │   ├─{OoklaServer},30260
  │   ├─{OoklaServer},30262
  │   ├─{OoklaServer},17333
  │   ├─{OoklaServer},17334
  │   ├─{OoklaServer},17335
  │   ├─{OoklaServer},17336
  │   ├─{OoklaServer},17339
  │   ├─{OoklaServer},17340
  │   ├─{OoklaServer},17343
  │   ├─{OoklaServer},17344
  │   ├─{OoklaServer},17345
  │   ├─{OoklaServer},17346
  │   ├─{OoklaServer},17347
  │   ├─{OoklaServer},17348
  │   ├─{OoklaServer},17349
  │   ├─{OoklaServer},17351
  │   ├─{OoklaServer},17353
  │   ├─{OoklaServer},17355
  │   ├─{OoklaServer},17356
  │   ├─{OoklaServer},17357
  │   ├─{OoklaServer},17358
  │   ├─{OoklaServer},17359
  │   ├─{OoklaServer},17360
  │   ├─{OoklaServer},17361
  │   ├─{OoklaServer},30724
  │   ├─{OoklaServer},30725
  │   ├─{OoklaServer},5035
  │   ├─{OoklaServer},5036
  │   ├─{OoklaServer},5037
  │   ├─{OoklaServer},5038
  │   ├─{OoklaServer},5039
  │   ├─{OoklaServer},5040
  │   ├─{OoklaServer},5041
  │   ├─{OoklaServer},5042
  │   ├─{OoklaServer},5043
  │   ├─{OoklaServer},5044
  │   ├─{OoklaServer},5045
  │   ├─{OoklaServer},5046
  │   ├─{OoklaServer},5047
  │   ├─{OoklaServer},5048
  │   ├─{OoklaServer},5049
  │   ├─{OoklaServer},5050
  │   ├─{OoklaServer},5051
  │   ├─{OoklaServer},5052
  │   ├─{OoklaServer},5053
  │   └─{OoklaServer},5054
  ├─{OoklaServer},1392
  └─{OoklaServer},10088

PhilippeMarques

  • AS210013 MARQUES
  • Expert
  • *
  • Messages: 1 187
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #19 le: 22 juin 2021 à 02:00:58 »
man signal

Signal     Valeur    Action   Commentaire
       ─────────────────────────────────────────────────────────────────────────
       SIGHUP        1       Term    Déconnexion détectée sur le terminal
                                     de contrôle ou mort du processus de
                                     contrôle.
       SIGINT        2       Term    Interruption depuis le clavier.
       SIGQUIT       3       Core    Demande « Quitter » depuis le clavier.
       SIGILL        4       Core    Instruction illégale.
       SIGABRT       6       Core    Signal d'arrêt depuis abort(3).
       SIGFPE        8       Core    Erreur mathématique virgule flottante.
       SIGKILL       9       Term    Signal « KILL ».
       SIGSEGV      11       Core    Référence mémoire invalide.
       SIGPIPE      13       Term    Écriture dans un tube sans
                                     lecteur.
       SIGALRM      14       Term    Temporisation alarm(2) écoulée.
       SIGTERM      15       Term    Signal de fin.
       SIGUSR1   30,10,16    Term    Signal utilisateur 1.
       SIGUSR2   31,12,17    Term    Signal utilisateur 2.

       SIGCHLD   20,17,18    Ign     Fils arrêté ou terminé.
       SIGCONT   19,18,25    Cont    Continuer si arrêté.
       SIGSTOP   17,19,23    Stop    Arrêt du processus.
       SIGTSTP   18,20,24    Stop    Stop invoqué depuis le terminal.
       SIGTTIN   21,21,26    Stop    Lecture sur le terminal en arrière-plan.
       SIGTTOU   22,22,27    Stop    Écriture dans le terminal en arrière-plan.



C'est quoi kill -0 ?
A moins que cela ai changé, si tu tues le ppid le fork pid reviens à init, si tu tues le père à la main, il faut tuer tous les fils.

kgersen

  • Modérateur
  • Abonné Free Pro
  • *
  • Messages: 8 411
  • Paris (75)
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #20 le: 22 juin 2021 à 06:45:38 »
C'est quoi kill -0 ?

ca permet de tester l'existence d'un process. c'est utiliser dans le script fourni après le kill pour attendre l'arret des process. (voir man kill).

kill -0 1388 ne kill rien du tout, c'est inefficace pour ce process.

J'ai tenté plusieurs fois, mais il est toujours là avec ses petits.

mais effectivement je me suis trompé c'est "kill 1388" qu'il fallait faire , sans le -0.

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #21 le: 22 juin 2021 à 10:12:50 »
Même en rajoutant ExitType=cgroup, on est obligé d'attendre l’expiration du timeout.

J'utilise la configuration proposée ci-dessous :

il manque juste "ExitType=cgroup" dans le fichier .service:

[Unit]
Description=service speedtest Ookla
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/home/speedtest/bin/OoklaServer
ExitType=cgroup
Restart=always
RestartSec=15
User=speedtest
TimeoutStopSec=90s
[Install]
WantedBy=multi-user.target

La raison de ce blocage est que la fin du process père ne tue pas le fils.

Ce matin le père est le process 693 :

# pstree -ap 693
OoklaServer,693
  ├─OoklaServer,755 --ward --server-id=3ddadcab-9c30-4ab4-9057-9c1080b27817
  │   ├─{OoklaServer},756
  │   ├─{OoklaServer},757
  │   ├─{OoklaServer},758
  │   ├─{OoklaServer},759
  │   ├─{OoklaServer},760
  │   ├─{OoklaServer},761
  │   ├─{OoklaServer},762
  │   ├─{OoklaServer},763
  │   ├─{OoklaServer},764
  │   ├─{OoklaServer},765
  │   ├─{OoklaServer},766
  │   ├─{OoklaServer},767
  │   ├─{OoklaServer},768
  │   ├─{OoklaServer},769
  │   ├─{OoklaServer},770
  │   ├─{OoklaServer},771
  │   ├─{OoklaServer},772
  │   ├─{OoklaServer},773
  │   ├─{OoklaServer},774
  │   ├─{OoklaServer},775
  │   ├─{OoklaServer},776
  │   ├─{OoklaServer},777
  │   ├─{OoklaServer},778
  │   ├─{OoklaServer},779
  │   ├─{OoklaServer},780
  │   ├─{OoklaServer},781
  │   ├─{OoklaServer},782
  │   ├─{OoklaServer},784
  │   ├─{OoklaServer},785
  │   ├─{OoklaServer},786
  │   ├─{OoklaServer},787
  │   ├─{OoklaServer},788
  │   ├─{OoklaServer},789
  │   ├─{OoklaServer},790
  │   ├─{OoklaServer},791
  │   ├─{OoklaServer},792
  │   ├─{OoklaServer},793
  │   ├─{OoklaServer},794
  │   ├─{OoklaServer},795
  │   ├─{OoklaServer},796
  │   ├─{OoklaServer},797
  │   └─{OoklaServer},1043
  ├─{OoklaServer},719
  ├─{OoklaServer},720
  ├─{OoklaServer},722
  ├─{OoklaServer},723
  ├─{OoklaServer},724
  └─{OoklaServer},754

Je tu le process père :
# kill 693

System.d a bien relancé le serveur sur PID 1061 qui a crée un fil 1062, mais le fils du 693, le PID 755 est toujours là :
# ps faux | grep Ookla
root        1073  0.0  0.0   8996   672 pts/0    S+   08:07   0:00                      \_ grep --color=auto Ookla
speedte+     755  0.2  0.1 2136416 13100 ?       Sl   08:04   0:00 /home/speedtest/bin/OoklaServer --ward --server-id=3ddadcab-9c30-4ab4-9057-9c1080b27817
speedte+    1061  5.0  0.0      0     0 ?        Z    08:07   0:00  \_ [OoklaServer] <defunct>
speedte+    1062  4.0  0.0  55484  6712 ?        Sl   08:07   0:00  \_ /home/speedtest/bin/OoklaServer --server-id=3ddadcab-9c30-4ab4-9057-9c1080b27817

Ce qui bloque le redémarrage, c'est donc le PID fils et non le père qui est bien tué.

PhilippeMarques

  • AS210013 MARQUES
  • Expert
  • *
  • Messages: 1 187
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #22 le: 22 juin 2021 à 12:55:21 »
Ce qui bloque le redémarrage, c'est donc le PID fils et non le père qui est bien tué.
Si tu tues le ppid, les pid reviennent à init et c'est init ( pid 1) qui devient leur ppid
Essaye un killall sur le pid, de mémoire cela tue tous les fils aussi.

vivien

  • Administrateur
  • *
  • Messages: 43 044
    • Twitter LaFibre.info
Comprendre d'où vient l'erreur "Failed unmounting /home"
« Réponse #23 le: 22 juin 2021 à 13:01:37 »
Si je fais un killall sur le nom, un seul est tué :

$ ps faux | grep Ookla
speedte+     692  0.0  0.0 194752  6680 ?        Ssl  10:56   0:00 /home/speedtest/bin/OoklaServer
speedte+     751  2.3  0.1 2382192 12456 ?       Sl   10:56   0:00  \_ /home/speedtest/bin/OoklaServer --ward --server-id=fc1b18ee-723f-459c-b4f2-63868f6910ea

$ sudo killall OoklaServer
Cela a tué le père :
$ ps faux | grep Ookla
speedte+     751  1.2  0.1 2144508 12992 ?       Sl   10:56   0:00 /home/speedtest/bin/OoklaServer --ward --server-id=fc1b18ee-723f-459c-b4f2-63868f6910ea

Étonnant, le fils a crée un fils :
$ ps faux | grep Ookla
speedte+     751  1.0  0.1 2136312 13064 ?       Sl   10:56   0:00 /home/speedtest/bin/OoklaServer --ward --server-id=fc1b18ee-723f-459c-b4f2-63868f6910ea
speedte+    1058  0.5  0.0  55484  6848 ?        Sl   10:57   0:00  \_ /home/speedtest/bin/OoklaServer --server-id=fc1b18ee-723f-459c-b4f2-63868f6910ea


J'ai essayé de lancer plusieurs fois de suite sudo killall OoklaServer, mais il est plus rapide que moi a créer des fils.