I have a SpringBoot application, for which I use gradle :myapp:jar
to generate an executable jar. In addition, I also had to use chmod 755 myapp.jar
to make the jar executable.
This is the gradle code for generating the jar, as described here:
springBoot { executable = true }
springBoot {
executable = true
}
jar {
baseName = 'myapp'
version = '0.1.0'
manifest {
attributes "Main-Class": "eu.myapp.Application"
}
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
}
I then create a symlink to init.d, as described here in order to use start/stop/status. The command I am executing to create the symlink is this:
sudo ln -fs myjar.jar /etc/init.d/myjar
After this, I can do:
sudo /etc/init.d/myapp start
The issue is that when I execute this command, I get the following error:
/etc/init.d/myapp: 1: /etc/init.d/myapp: PK: not found
/etc/init.d/myapp: 2: /etc/init.d/myapp�z�H: not found
/etc/init.d/myapp: 3: /etc/init.d/myapp: Syntax error: ")" unexpected
Looking it up online, it appears to be related to a shebang issue, which can be fixed by adding #!/bin/bash
at the beginning of the file. However, since I'm running a .jar
generated by gradle
, where would I need to add this line? Alternatively, how can I fix the above error?