Điểm:0

Không thể lấy cron để mở tệp Jar

lá cờ ar

Tôi đang chạy máy chủ minecraft trên Ubuntu 20.04. Tôi có một kịch bản để thực thi nó và hoạt động tốt. Tuy nhiên, tôi không thể làm cho nó hoạt động @reboot với cron, vì nó không thể tìm thấy tệp jar. Từ những gì tôi đã nghiên cứu, có vẻ như cron không chạy với người dùng của tôi (mặc dù tôi không sử dụng sudo). Những lựa chọn của tôi là gì?

Đây là crontab của tôi -e:

PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 

00 01 * * * /home/eggzaile/minecraft/backup.sh 2>>&1 

@reboot ngủ 45 && /usr/bin/screen -dmS minecraft sh -c '/home/eggzaile/minecraft/start.sh; exec bash' 2>>&1

sau khi khởi động lại và cron khởi động, khi tôi đính kèm vào cửa sổ đó ... tất cả những gì tôi thấy là lỗi không tìm thấy tệp jar.

đây là kịch bản chính nó:

    #!/bin/sh
trong khi đúng
làm
java -Xms3G -Xmx3G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX :G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+ PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true -jar paper-1.16.5-778.jar nogui
ngủ 5
xong

Tôi đã ghi nhớ ở đâu đó rằng việc sử dụng đường dẫn đầy đủ trên tập lệnh sẽ hoạt động, nhưng điều đó đã phá vỡ nó, tôi đã thử. tôi đã sử dụng (java -jar /path/to/server.jar và tất cả các đối số ở đây), nhưng có vẻ như tôi không nên thay đổi thứ tự.

Có mẹo nào không?

Michael Hampton avatar
lá cờ cz
Chính xác làm thế nào để bạn thực thi tập lệnh hoạt động?
eggzaile avatar
lá cờ ar
@MichaelHampton chỉ bằng cách thực thi "sh start.sh" là nó hoạt động. Tuy nhiên, tôi luôn mở một màn hình trước để giữ cho màn hình chạy ở chế độ nền "màn hình -S minecraft"
Điểm:0
lá cờ cz

Tập lệnh bash của bạn không thay đổi thành thư mục chứa các tệp jar. Đó là lý do tại sao tập lệnh bash của bạn không hoạt động. Nhưng bạn đã thay đổi thư mục khi khởi động thủ công.

Chỉnh sửa tập lệnh bash của bạn để thay đổi thư mục thích hợp trước khi gọi java.

eggzaile avatar
lá cờ ar
Cảm ơn vì đã giúp tôi! tôi đã thay đổi tập lệnh của mình: cd /home/eggzaile/minecraft && java tuy nhiên, không có gì xảy ra bây giờ, nó không khởi động khi khởi động lại :s
eggzaile avatar
lá cờ ar
Nói rõ hơn, ngồi ở thư mục chính (không phải nơi chứa tập lệnh), thực thi dòng cronjob, sẽ hoạt động: /usr/bin/screen -dmS minecraft sh -c '/home/eggzaile/minecraft/start.sh; điều hành bash' Mặc dù không hoạt động khi khởi động lại
eggzaile avatar
lá cờ ar
Ngoài ra, tôi không thể hiểu tại sao không làm gì thông qua nhật ký: Ngày 26 tháng 6 09:56:06 homelabs CRON[860]: (eggzaile) CMD (sleep 60 && /usr/bin/screen -dmS minecraft sh -c '/home/eggzaile/minecraft/start.sh; exec bash' 2> >&1) Ngày 26 tháng 6 09:56:06 homelabs CRON[775]: Thông tin (CRON) (Chưa cài đặt MTA, loại bỏ đầu ra)
eggzaile avatar
lá cờ ar
Đừng bận tâm, nó đang hoạt động!

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.