私は maven scala プラグインで使用される亜鉛インクリメンタル コンパイラの大ファンですが、ラップトップをバウンスするたびに手動で起動しなければならないのが面倒でした。Ubuntu でサービスとして実行するスクリプトを作成しました。問題なく起動しますが、mvn install を実行すると、プログラム javac が見つからないというエラーが表示されます。以下は /etc/init.d の私のスクリプトです - 注: $JAVA_HOME を指定し、このスクリプトで明示的にソースされている /etc/bash.bashrc のパスに追加します。
#!/bin/bash
### BEGIN INIT INFO
# Provides: zinc
# Required-Start: $remote_fs $network
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start compiler at boot time
# Description: Starts and stops the zinc incremental compiler
### END INIT INFO
source /etc/bash.bashrc
PROG_PATH="/opt/zinc/bin"
PROG="zinc"
start() {
su - gary "-c $PROG_PATH/$PROG -start 2>&1 >/dev/null &"
echo "$PROG started"
}
stop() {
su - gary "-c $PROG_PATH/$PROG -shutdown 2>&1 >/dev/null &"
echo "$PROG stopped"
}
## Check to see if we are running as root first.
if [ "$(id -u)" != "0" ]; then
echo "This script must be run as root" 1>&2
exit 1
fi
case "$1" in
start)
start
exit 0
;;
stop)
stop
exit 0
;;
reload|restart|force-reload)
stop
start
exit 0
;;
**)
echo "Usage: $0 {start|stop|reload}" 1>&2
exit 1
;;
esac