EDIT:
Tôi đã được quản lý như thế nào để đánh dấu các ứng dụng của bạn trong forever
sử dụng một UID, và sau đó không sử dụng forever stopall
. Đây là một cách sạch hơn, và sẽ làm cho mãi mãi để giết tất cả các quá trình tùy thuộc vào kịch bản.
Bạn chỉ cần thêm thông số --uid "scriptID"
và sau đó tất cả các quá trình tùy thuộc vào nó, sẽ được kiểm soát cùng nhau.
để bắt đầu một daemon mới: forever start --uid "demo" --sourceDir /home/procdir -l /home/log/logfile -o /home/log/outputfile -a -d -v taskName
để Stop một daemon: forever stop -uid "demo"
-bash-4.1$ forever list
info: Forever processes running
data: uid command script forever pid id logfile uptime
data: [1] Test /usr/bin/node grunt serve:test 18217 18224 /home/admin/logs/test/forever.log 59:20:21:10.512
data: [2] Dev /usr/bin/node grunt serve:dev 18347 18354 /home/admin/logs/dev/forever.log 59:20:19:56.87
data: [3] Prod /usr/bin/node grunt serve:prod 20411 20418 /home/admin/logs/prod/forever.log 59:18:58:28.697
Dù sao, bạn cũng có thể chạy (tay chiều) lệnh này để giết các quá trình: Đầu tiên, giết tất cả các nhiệm vụ mãi mãi (điều này sẽ ngăn chặn mãi mãi để chạy lại nhiệm vụ khi giết nó):
forever list | grep your_app | `awk '/\[0\]/{print "forever stop "$8}'`
Sau đó, khi mãi mãi bị giết chết, sau đó bây giờ Nó rất thời gian để giết node_app bạn
ps -efa | grep node | grep your_app | `awk '{ print "kill "$2}'`
tôi khuyên bạn không sử dụng kill
. forever --uid
chắc chắn sẽ là giải pháp tốt nhất.
Hy vọng giải pháp này sẽ giúp bạn!
EDIT:
Như forever --uid
đã bị phản đối, tôi đã cố gắng tìm ra cách để quản lý nhiều ứng dụng theo tên (mà không sử dụng phương pháp phản --uid). Có vẻ như sử dụng các tập tin cấu hình là giải pháp.Như đã đọc trong các tham số forever docsuid
và id
vẫn được sử dụng trong tệp cấu hình. Sau khi một số xét nghiệm, tôi đã quản lý mà id
là tham số đúng:
Ví dụ:
-bash-4.1$ pwd
/jome/myuser/app
-bash-4.1$ forever list
info: No forever processes running
-bash-4.1$ forever start ./forever/development.json
warn: --minUptime not set. Defaulting to: 1000ms
warn: --spinSleepTime not set. Your script will exit if it does not stay up for at least 1000ms
info: Forever processing file: index.js
-bash-4.1$ forever stop app4U
info: Forever stopped process:
uid command script forever pid id logfile uptime
[0] BaoO /usr/local/bin/node index.js 41196 41197 app4U /Users/me/.forever/BaoO.log 0:0:0:5.995
vĩnh viễn/development.json
{
// Comments are supported
"id": "app4U",
"append": true,
"watch": true,
"script": "index.js",
"sourceDir": "/jome/myuser/app"
}
index .js
a=0;
while (a<10) {
a+=1
a-=1
}
Bạn đã thử tìm kiếm máng các quy trình máy chủ: 'ps aux | grep ' –
ovi
bạn đã thử sudo mãi mãi stopall hoặc sudo mãi mãi dừng [process_id]? –
Tôi đã thử 'stopall'. Tôi cũng đã cố gắng dừng lại với điểm nhập cảnh của tôi, không xử lý id vì tôi đã không thể nhận được ID của nó từ danh sách mãi mãi. Tôi chưa thử 'ps aux | grep'. Đây là một gợi ý tốt, nhưng tôi đã rất sợ :-) mà tôi quên mất nó. –