start_client()
{
local client_type=$1
- local client_pid=$1
+ local torrent_file=$2
DEBUG echo "starting client ..."
case "${client_type}" in
"hrktorrent_seeder")
./start_hrk_seeder.sh ${torrent_file} &
- return $(pgrep -P $!)
+ return $!
;;
"hrktorrent_leecher")
./start_hrk_leecher.sh ${torrent_file} &
- return $(pgrep -P $!)
+ return $!
;;
esac
}
suspend_client()
{
+ local client_pid=$1
DEBUG echo "suspending client ..."
kill -STOP ${client_pid}
}
resume_client()
{
+ local client_pid=$1
DEBUG echo "resuming client ..."
kill -CONT ${client_pid}
}
to_sleep=${start_time}
sleep ${to_sleep}
-start_client
+start_client ${client_type} ${torrent_file}
+background_pid=$!
+DEBUG echo "background_pid is ${background_pid}"
old_time=${start_time}
for ((i = 0; i < ${#suspend_resume[@]}; i += 2)); do
to_sleep=$((${suspend_resume[$i]} - ${old_time}))
sleep ${to_sleep}
- suspend_client
+ client_pid=$(pgrep -P ${background_pid})
+ DEBUG echo "client_pid is ${client_pid}"
+ suspend_client ${client_pid}
old_time=${suspend_resume[$i]}
to_sleep=$((${suspend_resume[$(($i+1))]} - ${old_time}))
sleep ${to_sleep}
- resume_client
+ resume_client ${client_pid}
old_time=${suspend_resume[$(($i+1))]}
done
to_sleep=$((${stop_time} - ${old_time}))
sleep ${to_sleep}
-stop_client
+stop_client ${client_type}