Tente criar um script bash de wrapper separado com os comandos entre script
e end script
e passe isso para uma opção exec
no mesmo arquivo upstart.
Oportunidade é que seja qual for o ulimit -c 10000
desaparece quando as chamadas de inicialização forem lançadas ./myapp
.
Observe também que não é muito correto nomear seu arquivo como "script upstart". É um arquivo de configuração. Pode acontecer de conter linhas executáveis, mas seu objetivo principal é armazenar configurações e não comandos executáveis.
Adendo: Segui a mesma lógica acima, mas em vez de criar outro script, tive a ideia de fazer ulimit -c 10000 && ./myapp
e deu certo! o upstart aceitou o &&