Sign in to follow this  
Followers 0

Döda symlänkar under /proc och osd_display

1 post in this topic

Posted · Report post

Det ligger konstant mellan 136 och 137 döda symlänkar under /proc.

 

# ls -lR /proc/ 2>&1|grep 'cannot read'|awk 'END{print NR}'
136
De flesta är samma hela tiden (och de försvinner inte trots omboot) men det verkar vara någon process som spawnas om hela tiden. Det är bara ett par som förändras mellan två körningar:
# ls -lR /proc/ 2>&1|grep 'cannot read' > /var/log/a
# ls -lR /proc/ 2>&1|grep 'cannot read' > /var/log/b
# diff /var/log/a /var/log/b
103,104c103,104
< ls: /proc/2221/fd/3: cannot read link: No such file or directory
< ls: /proc/2221/task/2221/fd/3: cannot read link: No such file or directory
---
> ls: /proc/2218/fd/3: cannot read link: No such file or directory
> ls: /proc/2218/task/2218/fd/3: cannot read link: No such file or directory

Jag har stängt av alla plugins och satt dem i 'manual' mode så det är förmodligen inga av dem som ställer till det.

 

Finns det något käckt sätt få få boxen på fötter igen (utan att göra en fabriksåterställning)?

 

Jag höll på att utveckla en egen plugin som använde osd_display när jag märkte att boxen började hänga sig. Efter att ha stängt av alla plugins så hänger den sig inte längre men boxen känns seg och de döda länkarna försvinner inte.

Är det någon som vet om man kan lita på programmet osd_display eller om det kan vara det som ställt till något? Programmet jag själv skrev var ett litet bash-script som förmodligen inte borde ställa till något. Det kommer i sin helhet här om någon har lust att slänga ett öga på det.

 

#!/bin/bash

DIR=/STORAGE/NET
FILE=$DIR/callerid.txt
TIME=10
SIZE=30
YOFFSET=60
FOREGROUND_ARGB=00ffff00
BACKGROUND_ARGB=70000000
FONT=/usr/share/fonts/truetype/ttf-bitstream-vera/VeraIt.ttf
FONT=/var/fonts/arialbd99.ttf
SCRIPT=`echo "$0" | sed 's:.*/::'`
PIDLIST=`pidof -o %PPID $SCRIPT`

bg_process () {
    while [ 1 ]
    do
        if [ -r $FILE ]
        then
            y=$YOFFSET
            cat $FILE | while read line
            do
                /var/bin/tools/osd_display -t $TIME -s $SIZE -x $SIZE -y $y \
                    -fc $FOREGROUND_ARGB \
                    -bg $BACKGROUND_ARGB \
                    -fo $FONT \
                    "$line" &
                y=$(($y+$SIZE+4))
            done
            rm $FILE
            wait
        fi
        sleep 2
    done
}

run_bg_process () {
    if [ -n "$PIDLIST" ]; then
        echo "Already running $SCRIPT ($PIDLIST)."
    else
        bg_process &
        echo "Started $SCRIPT ($!)."
    fi
}

stop_bg_process () {
    if [ -z "$PIDLIST" ]; then
        echo "Not running $SCRIPT."
    else
        echo "Stopping $SCRIPT ($PIDLIST)..."
        kill $PIDLIST
        while [ $? -eq 0 ]
        do
            sleep 1
            PIDLIST=`pidof -o %PPID $SCRIPT`
        done
    fi
}

status_bg_process () {
    if [ -z "$PIDLIST" ]; then
        echo "Not running $SCRIPT."
    else
        echo "Running $SCRIPT ($PIDLIST)."
    fi
}

# --main---
case "$1" in
    status)
        status_bg_process
        ;;
    stop)
        stop_bg_process
        ;;
    restart)
        stop_bg_process
        run_bg_process
        ;;
    start)
        run_bg_process
        ;;
    *)
        run_bg_process > /dev/null 2>&1
        ;;
esac

Mvh Ted Lyngmo

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0