Fix PDK Mounts

From WebOS Internals
Jump to navigation Jump to search

PDK apps currently leave mount points open after they exit. This can lead to having many more open and mounted filesystems than expected: <source lang="text"> tmpfs 65536 3064 62472 5% /var/palm/jail/com.ea.app.scrabble/tmp /dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/com.ea.app.scrabble/lib

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/com.ea.app.scrabble/bin

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/com.ea.app.scrabble/usr/bin

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/com.ea.app.scrabble/usr/lib

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/com.ea.app.scrabble/usr/palm/frameworks

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/com.ea.app.scrabble/usr/share

tmpfs 16384 48 16336 0% /var/palm/jail/com.ea.app.scrabble/var/run/dbus /dev/mapper/store-var

                       253920     70840    183080  28% /var/palm/jail/com.ea.app.scrabble/var/lib/dbus

tmpfs 2048 204 1844 10% /var/palm/jail/com.ea.app.scrabble/dev/snd tmpfs 2048 204 1844 10% /var/palm/jail/com.ea.app.scrabble/dev/shm /dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/com.ea.app.scrabble/etc/ssl

tmpfs 2048 204 1844 10% /var/palm/jail/com.ea.app.scrabble/dev/logdir /dev/mapper/store-var

                       253920     70840    183080  28% /var/palm/jail/com.ea.app.scrabble/var/luna/preferences

/dev/mapper/store-media

                      7011456   2872896   4138560  41% /var/palm/jail/com.ea.app.scrabble/media/internal

tmpfs 16384 48 16336 0% /var/palm/jail/com.ea.app.scrabble/var/run cryptofs 7011456 2872896 4138560 41% /var/palm/jail/com.ea.app.scrabble/media/cryptofs/apps/usr/palm/applications/com.ea.app.scrabble tmpfs 65536 3064 62472 5% /var/palm/jail/org.webosinternals.wirc/tmp /dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/org.webosinternals.wirc/lib

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/org.webosinternals.wirc/bin

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/org.webosinternals.wirc/usr/bin

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/org.webosinternals.wirc/usr/lib

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/org.webosinternals.wirc/usr/palm/frameworks

/dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/org.webosinternals.wirc/usr/share

tmpfs 16384 48 16336 0% /var/palm/jail/org.webosinternals.wirc/var/run/dbus /dev/mapper/store-var

                       253920     70840    183080  28% /var/palm/jail/org.webosinternals.wirc/var/lib/dbus

tmpfs 2048 204 1844 10% /var/palm/jail/org.webosinternals.wirc/dev/snd tmpfs 2048 204 1844 10% /var/palm/jail/org.webosinternals.wirc/dev/shm /dev/mapper/store-root

                       452296    408940     43356  90% /var/palm/jail/org.webosinternals.wirc/etc/ssl

tmpfs 2048 204 1844 10% /var/palm/jail/org.webosinternals.wirc/dev/logdir /dev/mapper/store-var

                       253920     70840    183080  28% /var/palm/jail/org.webosinternals.wirc/var/luna/preferences

/dev/mapper/store-media

                      7011456   2872896   4138560  41% /var/palm/jail/org.webosinternals.wirc/media/internal

cryptofs 7011456 2872896 4138560 41% /var/palm/jail/org.webosinternals.wirc/media/cryptofs/apps/usr/palm/applications/org.webosinternals.wirc tmpfs 16384 48 16336 0% /var/palm/jail/org.webosinternals.wirc/var/run </source>

A solution is to run a shell script that will search for these mount points and remove them: <source lang="bash">

  1. !/bin/sh

for i in $(mount | grep 'jail' | sed 's/.*\(\/var\/palm\/jail\/[^[:blank:]]*\).*/\1/'); do umount ${i} 2>/dev/null; done for i in $(mount | grep 'jail' | sed 's/.*\(\/var\/palm\/jail\/[^[:blank:]]*\).*/\1/'); do umount ${i} 2>/dev/null; done </source>

The operation is intentionally performed twice because the /var/run/dbus mounts must be unmounted after all the other ones.