- giả sử bạn đang sử dụng "chơi dist" gói, bạn có thể tạo ra một kịch bản init.d đơn giản xung quanh nó. Một cái gì đó như:
/etc/init.d/play.myplayapp
#! /bin/sh
### BEGIN INIT INFO
# Provides: play
# Required-Start: $all
# Required-Stop: $all
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description:
# Description:
### END INIT INFO
APP="myplayapp"
APP_PATH="/opt/play/$APP"
start() {
$APP_PATH/start &
}
stop() {
kill `cat $APP_PATH/RUNNING_PID`
}
case "$1" in
start)
echo "Starting $APP"
start
echo "$APP started."
;;
stop)
echo "Stopping $APP"
stop
echo "$APP stopped."
;;
restart)
echo "Restarting $APP."
stop
sleep 2
start
echo "$APP restarted."
;;
*)
N=/etc/init.d/play.$APP
echo "Usage: $N {start|stop|restart}" >&2
exit 1
;;
esac
exit 0
2. Họ không thực sự có một phân phối tập tin duy nhất của dự án. Điều tốt nhất bạn có thể làm là chạy "play dist" để tạo ra một gói phân phối. Ngay cả khi nó được phân phối dưới dạng một tệp, nó có thể được trích xuất vào hệ thống tệp khi chạy chỉ để có hiệu quả (chỉ cách xử lý các tệp war).
của FatJar không được mở rộng khi chạy. Tôi đang tìm kiếm một tùy chọn để xây dựng một fatJar. – sheki
Tập lệnh này sẽ hoạt động hầu hết các lần, nhưng trong thời gian lẻ khi 'kill' sẽ thất bại. Có thể ở trạng thái xấu rồi. Tệp PID, tệp đã biến mất và ứng dụng vẫn đang chạy. – sheki