Linkstation Live + Twonky 6.0.34 only runs in telnet session

Other OS or NAS discussions
Post Reply
ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live
Linkstation Live + Twonky 6.0.34 only runs in telnet session

Post by ptoddy26 » Sat Sep 03, 2011 7:55 pm

Hi guys

I've managed to install Twonky 6.0.34 on my Linkstation Live. It doesnt seem to start so if I telnet in and start twonky it runs but only runs until i log off telnet or close the command window in using for telnet.

When starting twonky from a telnet session it says :

route: SIOCADDRT: Network is down
root@Nas:/etc/init.d# TwonkyMedia Version 6.0.34

Any suggestions

Thanks

Paul

User avatar
parnott
Posts:326
Joined:Mon Sep 20, 2010 9:55 pm
AV Hardware:Twonky, WDTV Live, XBMC (Linux & Windows)

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by parnott » Sun Sep 04, 2011 12:58 am

ptoddy26 wrote:Hi guys

I've managed to install Twonky 6.0.34 on my Linkstation Live. It doesnt seem to start so if I telnet in and start twonky it runs but only runs until i log off telnet or close the command window in using for telnet.
That would seem to indicate that the Twonky process is not being daeminized. I.E. not detaching from your console process so it can continue running after you log out.

Please post the contents of yout Twonky start up script.

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Mon Sep 05, 2011 8:22 pm

Hi Parnott

Thanks for the reply. I followed an online post to install Twonky and it says the following:

You may want to run Twonky at startup to save the manual process of typing “/etc/init.d/twonky start” from a telnet window. To do this enter (from the telnet window);
Code:
cp /etc/init.d/rcS /etc/init.d/rcS_old

This makes a copy of the rcS file before we modify/screw it up. Then enter(exactly as typed);
Code:
echo "exec_sh twonky" >> /etc/init.d/rcS

Thanks
Paul

User avatar
parnott
Posts:326
Joined:Mon Sep 20, 2010 9:55 pm
AV Hardware:Twonky, WDTV Live, XBMC (Linux & Windows)

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by parnott » Tue Sep 06, 2011 4:48 am

Well we still need to see the contents of the startup script to figure out what is happening. From your post that would be- /etc/init.d/twonky

It would also help to see the contents of the main startup script- /etc/init.d/rcS

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Tue Sep 06, 2011 7:15 am

How do I go about accessing the script from those 2 files so I can post on here?

User avatar
parnott
Posts:326
Joined:Mon Sep 20, 2010 9:55 pm
AV Hardware:Twonky, WDTV Live, XBMC (Linux & Windows)

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by parnott » Tue Sep 06, 2011 6:21 pm

Telnet into your Linkstation as root and enter the commands-
cat /etc/init.d/twonky
cat /etc/init.d/rcS

Copy the output from the Telnet window and paste the output into a post.

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Tue Sep 06, 2011 11:23 pm

Here you go.

BUFFALO INC. LinkStation series
Nas login: root
Last login: Sat Sep 3 19:54:02 BST 2011 on pts/0
Last login: Tue Sep 6 23:20:34 BST 2011 on pts/0
root@Nas:~# cat /etc/init.d/twonky
#!/bin/sh
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

cd /mnt/disk1/share/twonky
/mnt/disk1/share/twonky/twonkymedia &
root@Nas:~# cat /etc/init.d/rcS
#!/bin/sh

PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
export PATH

DEBUG=0
. /usr/local/lib/libmsg
. /usr/local/lib/libsys.sh

CheckDebugMode()
{
IsDebugMode
if [ "$?" -eq "" ] ; then
DEBUG=1
else
DEBUG=0
fi
}

exec_sh_ex()
{
PadPrint "Starting :$1 ... "
if [ ! -x /etc/init.d/$1 ] ; then
echo [Skipped.]
return 1
fi
if [ "${DEBUG}" = 1 ] ; then
/etc/init.d/$1 start
RET=$?
else
/etc/init.d/$1 start > /dev/null 2>&1 > /dev/null
RET=$?
fi

case ${RET} in
0)
echo [Success.]
;;
*)
echo [Failed. ]
;;
esac
}

exec_sh()
{
echo "=== $1 ==="
/etc/init.d/$1 start
}

cleanup_lock_files()
{
echo "cleanup lock files..." >&2
rm -rf /var/lock/* 2>/dev/null
}

echo "--- rcStart (hddroot) ---" > /dev/ttyS0

mount proc /proc -t proc
mount sysfs /sys -t sysfs

cleanup_lock_files

# for NFS
TMP=`grep /dev/root /proc/mounts|grep nfs`
if [ "$TMP" != "" ]; then
echo "nfs root mode."
/sbin/hwclock -s
fi
#
date

ldconfig
/sbin/depmod -a
UmountWithCheck /etc/pwrmgr/etc/pwrmgr
UmountWithCheck /etc/pwrmgr

echo "** step1 **"
#for cmd in checkroot.sh procps.sh devpts.sh sethostname.sh restore_config.sh fr
ee_ramdisk.sh vm_tune.sh
#do
# exec_sh ${cmd}
#done

for cmd in /etc/rc.d/sysinit.d/S*
do
${cmd} start
done

echo "** step2 **"
#for cmd in EnablingAutoip.sh usb.sh hotplug.sh networking.sh update_ntp.sh sysl
og.sh network_control.sh inetd.sh errormon.sh kernelmon.sh miconmon.sh checkSysM
d.sh start_data_array.sh set_quota.sh
#do
# exec_sh ${cmd}
#done

#
echo "** step3 **"
# removed bonjour.sh
for cmd in diskmon.sh ftpd.sh atalk.sh httpd.sh smb.sh clientUtil_servd.sh lsprc
vd.sh daemonwatch.sh cron.sh checkconfig.sh ups.sh pwrmgr.sh
do
exec_sh ${cmd}
done

echo "** step4 **"
# removed ltbootd.sh
for cmd in lprng.sh pmcd.sh telnet.sh ssh.sh
do
exec_sh ${cmd}
done

for cmd in /etc/rc.d/extensions.d/S*
do
cmd_basename=$(basename $cmd)
case $cmd_basename in
S[[:digit:]][[:digit:]]B_*)
echo " * Starting ${cmd_basename#S*_} in background..."
${cmd} start > /dev/null 2>&1 &
;;
*)
${cmd} start
esac
done
## for older F/W (before 1.05)
grep "schedule_no=" /etc/melco/raidscan >/dev/null
if [ $? -ne 0 ]; then
echo -e "raidscan=off\nschedule_type=month\nschedule_week=Sun\nschedule_month
=1\nschedule_start_time=2\nschedule_no=" >/etc/melco/raidscan
fi

#fin.

## fix bug #11761
if grep -q '^:' /etc/passwd; then
perl -ni -e 'm/^:/ or print' /etc/passwd
perl -ni -e 'm/^:/ or print' /etc/shadow
fi

## fix bug #22161, #22667
if ! grep -q diskmon.sh /etc/cron/crontabs/root; then
echo '37 * * * * /etc/init.d/diskmon.sh restart' >> /etc/cron/crontabs/r
oot
/etc/init.d/cron.sh restart
fi

if ! grep -q check_smart.sh /etc/cron/crontabs/root; then
echo '10 4 * * * /etc/cron/cron.d/check_smart.sh' >> /etc/cron/crontabs/
root
/etc/init.d/cron.sh restart
fi
exec_sh bootcomplete.sh

echo "** step final(after bootcomplete) **"
for cmd in hdd_late_check.sh check_initialization.sh usb_late_check.sh
do
start-stop-daemon --background --start --exec /etc/init.d/$cmd -- start
done

start-stop-daemon --background --start --exec /usr/local/bin/share_delete.sh

POWER_SW_STAT=$(cat /proc/buffalo/gpio/switch/power 2>/dev/null)
AUTO_POWER_SW_STAT=$(cat /proc/buffalo/gpio/switch/auto_power 2>/dev/null)
if [[ $POWER_SW_STAT == off && $AUTO_POWER_SW_STAT == off ]]; then
/usr/local/bin/shutdown.sh normal
fi

/usr/local/bin/hdd_raid_syncspeed.sh
exec_sh twonky
root@Nas:~#

User avatar
parnott
Posts:326
Joined:Mon Sep 20, 2010 9:55 pm
AV Hardware:Twonky, WDTV Live, XBMC (Linux & Windows)

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by parnott » Wed Sep 07, 2011 6:49 pm

I believe I see 2 problems in the startup script.
1) The startup script is not telling Twonky to run as a daemon. It is just running Twonky as a background process of the session. When you log off, Twonky will be killed, which I think is what you have described as happening.
2) The Twonky appdata directory (database, config files, etc.) is not being relocated to a safe location. You probably have not seen the problems this will cause yet.

Let's try and solve the problems in 2 steps- 1) get Twonky working properly via Telenet, 2) get Twonky working when your NAS starts up.

1. Get Twonky working in Telnet
a) Telnet into your NAS and login as root and enter the following commands-

Code: Select all

cd /mnt/disk1/share/twonky
mkdir config
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0  (if this fails then the route is already present or eth0 is not the correct network interface)
/mnt/disk1/share/twonky/twonkymedia -D -appdata /mnt/disk1/share/twonky/config &
b) Verify that the 2 Twonky processes are running (e.g. with ps aux). You should see twonkymedia and twonkymediaserver.
c) Logout then log back in and verify Twonky is still running.

2. If it works up to this point then go ahead and modify /etc/init.d/twonky so it looks like this-

Code: Select all

#!/bin/sh
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

cd /mnt/disk1/share/twonky
/mnt/disk1/share/twonky/twonkymedia -D -appdata /mnt/disk1/share/twonky/config &
Reboot and see if it works.

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Thu Sep 08, 2011 10:46 pm

Hi Parnott

Thanks for the code. Started doing 1a but got the following. Not sure if it's correct?

BUFFALO INC. LinkStation series
Nas login: root
Last login: Tue Sep 6 23:20:34 BST 2011 on pts/0
Last login: Thu Sep 8 22:38:11 BST 2011 on pts/0
root@Nas:~# cd /mnt/disk1/share/twonky
root@Nas:/mnt/disk1/share/twonky# mkdir config
<wonky# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
route: SIOCADDRT: Network is down
root@Nas:/mnt/disk1/share/twonky# route add -net 224.0.0.0 netmask 240.0.0.0 d>
route: SIOCADDRT: Network is down
<onky/twonkymedia -D -appdata /mnt/disk1/share/twonky/config &
Daemonizing...
3372
root@Nas:/mnt/disk1/share/twonky# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 1.0 1.1 3084 584 ? Ss 22:35 0:03 init
root 2 0.0 0.0 0 0 ? S< 22:35 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S< 22:35 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S< 22:35 0:00 [events/0]
root 5 0.0 0.0 0 0 ? S< 22:35 0:00 [khelper]
root 8 0.0 0.0 0 0 ? S< 22:35 0:00 [async/mgr]
root 89 0.0 0.0 0 0 ? S< 22:35 0:00 [kblockd/0]
root 122 0.0 0.0 0 0 ? S 22:35 0:00 [pdflush]
root 123 0.0 0.0 0 0 ? S 22:35 0:00 [pdflush]
root 124 0.0 0.0 0 0 ? S< 22:35 0:00 [kswapd0]
root 125 0.0 0.0 0 0 ? S< 22:35 0:00 [aio/0]
root 126 0.0 0.0 0 0 ? S< 22:35 0:00 [nfsiod]
root 129 0.0 0.0 0 0 ? S< 22:35 0:00 [xfs_mru_cache]
root 130 0.0 0.0 0 0 ? S< 22:35 0:00 [xfslogd/0]
root 131 0.0 0.0 0 0 ? S< 22:35 0:00 [xfsdatad/0]
root 132 0.0 0.0 0 0 ? S< 22:35 0:00 [xfsconvertd/0]
root 133 0.0 0.0 0 0 ? S< 22:35 0:00 [crypto/0]
root 160 0.0 0.0 0 0 ? S 22:35 0:00 [crypto]
root 161 0.0 0.0 0 0 ? S 22:35 0:00 [crypto_ret]
root 418 0.0 0.0 0 0 ? S< 22:35 0:00 [scsi_eh_0]
root 419 0.0 0.0 0 0 ? S< 22:35 0:00 [scsi_eh_1]
root 438 0.3 0.0 0 0 ? S< 22:35 0:01 [mtdblockd]
root 439 0.0 0.0 0 0 ? S< 22:35 0:00 [nftld]
root 447 0.0 0.0 0 0 ? S< 22:35 0:00 [kstriped]
root 449 0.0 0.0 0 0 ? S< 22:35 0:00 [kcryptd/0]
root 451 0.0 0.0 0 0 ? S< 22:35 0:00 [rpciod/0]
root 618 0.0 0.0 0 0 ? S< 22:35 0:00 [kjournald]
root 659 0.0 1.1 1720 576 ? S<s 22:35 0:00 /sbin/udevd --d
root 1235 0.0 0.0 0 0 ? S< 22:35 0:00 [kjournald]
root 1286 0.0 0.0 0 0 ? S< 22:35 0:00 [khubd]
root 1356 0.0 0.3 1620 208 ? Ss 22:36 0:00 /sbin/dhcpcd -L
root 1413 0.0 1.1 1856 620 ? Ss 22:36 0:00 syslogd -m 0
root 1415 0.1 3.1 2764 1656 ? Ss 22:36 0:00 klogd
root 1424 0.0 1.2 3620 652 ? Ss 22:36 0:00 /usr/sbin/inetd
root 1428 0.0 0.7 1824 408 ? Ss 22:36 0:00 /usr/local/sbin
root 1433 0.0 1.9 2268 1016 ? Ss 22:36 0:00 /bin/sh /usr/lo
root 1442 0.5 13.1 27212 6844 ? Ssl 22:36 0:01 /usr/bin/python
root 1469 0.0 2.1 2700 1124 ? S 22:36 0:00 /bin/sh /usr/lo
root 1539 0.0 0.0 0 0 ? S< 22:36 0:00 [xfsbufd]
root 1540 0.0 0.0 0 0 ? S< 22:36 0:00 [xfsaild]
root 1541 0.0 0.0 0 0 ? S< 22:36 0:00 [xfssyncd]
root 1624 0.0 0.9 1804 476 ? Ss 22:36 0:00 /usr/local/sbin
root 1683 0.0 1.8 4296 988 ? S 22:36 0:00 /usr/sbin/light
root 1695 0.0 1.8 4296 980 ? S 22:36 0:00 /usr/sbin/light
root 1713 0.0 5.0 10268 2652 ? Ss 22:36 0:00 /usr/local/sbin
root 1715 0.0 4.1 10268 2140 ? S 22:36 0:00 /usr/local/sbin
root 1725 0.0 3.2 5940 1676 ? Ss 22:36 0:00 /usr/local/sbin
root 1744 0.0 1.6 2296 868 ? S 22:36 0:00 /usr/local/sbin
root 1746 0.0 1.7 4172 888 ? Ss 22:36 0:00 /usr/local/sbin
root 1749 0.0 0.6 1796 352 ? Ss 22:36 0:00 /usr/local/sbin
root 1814 0.0 0.8 2272 444 ? Ss 22:36 0:00 lpd Waiting
root 1830 0.0 0.3 1176 188 ? Ss 22:36 0:00 /usr/sbin/telne
root 1966 0.0 1.1 3360 612 ? Ss 22:36 0:00 /usr/sbin/crond
root 2090 0.0 1.2 3364 656 ttyS0 Ss+ 22:36 0:00 /sbin/getty -L
root 2154 0.0 0.8 3228 448 ? S 22:36 0:00 cat /proc/buffa
root 2276 0.1 2.2 2804 1180 ? S 22:37 0:00 /bin/bash /usr/
root 2588 0.0 1.9 2784 1032 pts/0 Ss+ 22:38 0:00 /bin/login
root 2598 0.0 2.4 2404 1300 pts/0 S+ 22:38 0:00 -bash
root 3374 0.0 0.7 1700 392 ? S 22:40 0:00 /mnt/disk1/shar
root 3375 38.8 6.3 10476 3288 ? Sl 22:40 0:04 /mnt/disk1/shar
root 3426 0.0 0.8 3228 432 ? S 22:40 0:00 sleep 10
root 3449 0.0 0.0 0 0 ? Z 22:41 0:00 [med] <defunct>
root 3454 1.0 0.8 3228 448 ? S 22:41 0:00 sleep 3
root 3456 0.0 1.6 2208 864 pts/0 R+ 22:41 0:00 ps aux
root@Nas:/mnt/disk1/share/twonky# ps
PID TTY TIME CMD
2588 pts/0 00:00:00 login
2598 pts/0 00:00:00 bash
3861 pts/0 00:00:00 ps
root@Nas:/mnt/disk1/share/twonky#

User avatar
parnott
Posts:326
Joined:Mon Sep 20, 2010 9:55 pm
AV Hardware:Twonky, WDTV Live, XBMC (Linux & Windows)

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by parnott » Fri Sep 09, 2011 3:16 am

It looks like you have got Twonky running and daemonizing becuase-
Firstly- when you start Twonky you see the Daemonizing... message.
Secondly- in the output from ps aux I see these 2 lines which I think indicate Twonky is running-

Code: Select all

root 3374 0.0 0.7 1700 392 ? S 22:40 0:00 /mnt/disk1/shar
root 3375 38.8 6.3 10476 3288 ? Sl 22:40 0:04 /mnt/disk1/shar
The end of the lines are cut off but looking through all the other processes it looks like Twonky is running and detached from your console session.

So log out and log back in and see if those 2 processes are still running using ps aux.

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Fri Sep 09, 2011 8:47 am

Hi Parnott

Right i logged off telnet and back in and the services were still running. I then started part 2 of your post (see below). But when i reboot the linkstation, Twonky still doesn't start back up. To modify /etc/init.d/Twonky do i just paste the same code you've put in example 2 or is there a bit more to do?


root 2201 0.1 1.9 2784 1040 pts/0 Ss+ 08:39 0:00 /bin/login
root 2202 0.0 2.4 2400 1296 pts/0 S+ 08:39 0:00 -bash
root 2421 0.1 0.8 3228 448 ? S 08:40 0:00 sleep 10
root 2424 0.2 0.7 1700 400 ? S 08:40 0:00 /mnt/disk1/share/twonky/twonkymedia -D -appdata /mnt/disk1/share/twonky/config
root 2425 58.0 5.9 10120 3104 ? Sl 08:40 0:02 /mnt/disk1/share/twonky/twonkymediaserver -D -appdata /mnt/disk1/share/twonky/config
root 2468 0.0 0.0 0 0 ? Z 08:40 0:00 [mediafusion-int] <defunct>
root 2478 0.0 0.8 3228 448 ? S 08:40 0:00 sleep 3
root 2479 0.0 1.6 2208 864 pts/0 R+ 08:40 0:00 ps aux
root@Nas:~# #!/bin/sh
root@Nas:~# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
route: SIOCADDRT: Network is down
root@Nas:~# cd /mnt/disk1/share/twonky
root@Nas:/mnt/disk1/share/twonky# /mnt/disk1/share/twonky/twonkymedia -D -appdata /mnt/disk1/share/twonky/config &
Daemonizing...
2769
root@Nas:/mnt/disk1/share/twonky#

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Fri Sep 09, 2011 8:52 am

this is my contents of /etc/init.d/twonky. Looks like it's as you asked above. Still doesn't seem to start at boot though.


root@Nas:/mnt/disk1/share/twonky# cat /etc/init.d/twonky
#!/bin/sh
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

cd /mnt/disk1/share/twonky
/mnt/disk1/share/twonky/twonkymedia &
root@Nas:/mnt/disk1/share/twonky#

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Fri Sep 09, 2011 10:31 am

Think i've got it now. Just noticed the /etc/init.d/twonky wasn't quite as you asked.

I found out how to use the vi editor and made the twonky file as you asked. See below

Also seems to boot up with the Linkstation now. Thank you very much for your help :)


BUFFALO INC. LinkStation series
Nas login: root
Last login: Fri Sep 9 10:28:06 BST 2011 on pts/0
Last login: Fri Sep 9 10:30:23 BST 2011 on pts/0
root@Nas:~# cat /etc/init.d/twonky
#!/bin/sh
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0

cd /mnt/disk1/share/twonky
/mnt/disk1/share/twonky/twonkymedia -D -appdata /mnt/disk1/share/twonky/config &
root@Nas:~#

ptoddy26
Posts:10
Joined:Fri Sep 02, 2011 3:03 pm
AV Hardware:Buffalo Linkstation Live

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by ptoddy26 » Tue Sep 13, 2011 2:18 pm

Hi parnott

I now have a slight problem. My Twonky has stopped working and when i run ps aux i get the following:

[twonkymediaserv] <defunct>

If i try and restart it it just says as above.

Thanks

Paul

User avatar
parnott
Posts:326
Joined:Mon Sep 20, 2010 9:55 pm
AV Hardware:Twonky, WDTV Live, XBMC (Linux & Windows)

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by parnott » Tue Sep 13, 2011 8:01 pm

That would indicate that the twonkymediaserver process has ended unexpectedly. There could be numerous reasons for that.

The only way to figure out what is happening would be to try and locate a Twonky log file and see if there is anything usefull in it.

Also post the contents of your Twonky ini file. It should be located in the directory- /mnt/disk1/share/twonky/config

jackdaw
Posts:4
Joined:Mon Nov 02, 2009 11:53 pm
AV Hardware:Buffalo Linkstation Pro

Re: Linkstation Live + Twonky 6.0.34 only runs in telnet ses

Post by jackdaw » Thu Sep 22, 2011 2:32 pm

Remove what you've done and just use my guide - it works flawlessly:
http://forum.buffalo.nas-central.org/vi ... 68&t=23585

Post Reply