Você usou um substituição de variável fora de aspas duplas. Não faça isso. Como $pname está sem aspas, seu valor é dividido em caracteres de espaços em branco, portanto, pkill obtém os argumentos -9 , -f , java , -Xmx512m , -XX:MaxPermSize=128m , -cp , /local/toto//conf/:/local/toto//lib/* , com.toto.main.entry.Launchtoto , processToto . Naturalmente pkill reclama quando atinge a opção -X que não entende.
Basta passar o valor de pname como argumento para pkill , ou seja,
/usr/bin/sudo -u toto /usr/bin/pkill -9 -f "$pname"
Quanto ao prompt de senha sudo, minha bola de cristal me diz que você colocou a entrada NOPASSWD antes de outra entrada sem NOPASSWD para o mesmo usuário. A entrada NOPASSWD precisa ser a última. Veja Como executar um específico programa como root sem um prompt de senha?