Você está misturando três comandos: deamon , perl e /home/nuthan/program/server sem nenhuma aspas. Pense no seguinte: Como cada um deles sabe quais parâmetros ele deve interpretar?
A sintaxe que você usou provavelmente só poderia ser interpretada corretamente se:
-
deamontrataria tudo depois de-18ser o comando para executar -
perlinterpretaria apenas o primeiro parâmetro (/home/nuthan/program/server) como o script a ser executado, e tudo o que segue como parâmetros passados para esse script
Posso sugerir duas coisas para corrigir os problemas:
- Verifique se você precisa chamar
perlexplicitamente. Se o scriptservercontiver uma declaração de intérprete apropriada (provavelmente/usr/bin/perl) em sua primeira linha e tiver um bit executável definido, não será necessário chamar explicitamenteperl. - Verifique a sintaxe do comando
daemon. Se isso indica que tudo após-18(em seu comando) deve ser tratado como um comando completo para executar, então está tudo bem. Caso contrário, você pode precisar de tudo o que se segue entre aspas ou criar uma função adicional ou um script de wrapper que executaria todo o seu comando - assim, toda a linha de comando escrito seria alterado paradaemon -18 your_functionoudaemon -18 /path/to/your/wrapper_script.sh.