Tôi có một kịch bản PHP. Tôi muốn chạy điều này trong nền trong ubuntu. Tôi đã thử sử dụng & sau khi mở rộng .php
php filename.php &
Nó hiển thị một cái gì đó như: "[1] 15996" Điều này. Tôi không hiểu ý nghĩa của điều này. Xin ai đó giúp tôi với điều này. Tôi nên làm gì để chạy tập lệnh PHP trong nền. và làm cách nào để kiểm tra nó. Tôi đã sử dụng lệnh "Top" để kiểm tra các tệp đang chạy. Nhưng tôi chỉ hiển thị thiết bị đầu cuối đang chạy và không hiển thị tệp chính xác mà IAM đang chạy. làm ơn cũng giúp tôi điều này
Que: 1] Cách chạy tập lệnh PHP trong nền trong Ubuntu 2] Làm cách nào để kiểm tra xem nó có chạy hay không
Hỏi ngày 15 tháng 10 năm 2013 lúc 6:16Oct 15, 2013 at 6:16
Đây là câu hỏi của tôi. Tôi đã tìm ra câu trả lời cho câu hỏi của tôi. Vì vậy, tôi muốn chia sẻ với tất cả các bạn. câu trả lời là
Chỉ cần nhập lệnh
nohup php .php &
Quá trình sẽ bắt đầu chạy và bạn sẽ tìm thấy số quy trình như tôi đã tìm thấy "15996". Một số.
Bây giờ nhập "TOP" vào thiết bị đầu cuối Ubuntu .U sẽ tìm thấy quá trình chạy với cùng một số quy trình mà bạn có
Cảm ơn tất cả vì đã nói với câu hỏi của tôi.
Tôi hy vọng trong tương lai, bài đăng này có thể giúp một số
cảm ơn
Đã trả lời ngày 16 tháng 10 năm 2013 lúc 7:32Oct 16, 2013 at 7:32
Jan Srkljan Srkljan srkl
451 Huy hiệu bạc9 Huy hiệu đồng1 silver badge9 bronze badges
[1] 15996
có nghĩa là quá trình đang chạy và ID quy trình là 15996. Có khả năng tập lệnh bạn đang chạy được thực hiện trước khi bạn tìm thấy nó trong danh sách quy trình của mình, trừ khi bạn biết nó khá tốn thời gian. Bạn có thể kiểm tra xem nó có đang chạy bằng cách làm không:
ps -aux | grep 15996
Đã trả lời ngày 15 tháng 10 năm 2013 lúc 6:20Oct 15, 2013 at 6:20
Hamza Kubbahamza KubbaHamza Kubba
2.23912 huy hiệu bạc11 huy hiệu đồng12 silver badges11 bronze badges
0
Tôi đã làm một cái gì đó tương tự ngày hôm qua.
Để chạy một tập lệnh, chỉ cần sử dụng crond
để thực thi nó, bạn nên xem xét điều này: thực thi PHP với crontab.
Để kiểm tra xem nó đang chạy, bạn có thể sử dụng lệnh ps
không, một cái gì đó tương tự như thế này:
ps -ef | grep filename.php | grep -v grep > /dev/null
if [ $? -eq 0 ]; then
echo "running"
else
echo "not running"
fi
Đã trả lời ngày 15 tháng 10 năm 2013 lúc 6:29Oct 15, 2013 at 6:29
Sal00mSal00mSal00m
2.9103 huy hiệu vàng21 Huy hiệu bạc33 Huy hiệu đồng3 gold badges21 silver badges33 bronze badges
Tôi đã thử mã dòng lệnh sau để chạy một bản thảo PHP trong nền.
php server.php &
Những công việc này. Vấn đề là: Nếu tôi đóng cửa sổ thiết bị đầu cuối trên máy tính của mình, bản thảo PHP cũng dừng lại. Tôi muốn nó chạy "vô hạn". Đó là một máy chủ WebSocket nên nó phải chạy liên tục.
Làm thế nào tôi có thể đạt được điều này?
Cảm ơn trước!
EDIT: Tôi đã tìm thấy câu trả lời [tôi đoán là cách câu hỏi này].
nohup php server.php &
Đã hỏi ngày 4 tháng 7 năm 2018 lúc 11:35Jul 4, 2018 at 11:35
Bạn có thể sử dụng
nohup php .php &
0 để mở một thiết bị đầu cuối ảo, trong đó tập lệnh có thể chạy.Tôi khuyên bạn nên sử dụng
nohup php .php &
1. Sau đó, bạn có thể chạy tập lệnh của bạn [ngay cả khi không có &]. Với Ctrl + A, D bạn có thể ngắt kết nối khỏi Termial. Bạn có thể kết nối lại với nohup php .php &
2 trở lại thiết bị đầu cuối.Đã trả lời ngày 4 tháng 7 năm 2018 lúc 11:47Jul 4, 2018 at 11:47
Boba Fitboba phù hợpBoba Fit
1.51413 Huy hiệu bạc25 Huy hiệu đồng13 silver badges25 bronze badges
Mặc dù câu trả lời của Boba Fit sẽ giúp bạn, tôi nghĩ rằng có một cách tốt hơn để chạy máy chủ của bạn trong nền. Trong trường hợp khởi động lại, bạn có thể muốn máy chủ của mình chạy trở lại.
Tôi đã sử dụng người giám sát trong một trường hợp sử dụng tương tự. Tôi trường hợp của tôi đó là một quy trình PHP dài để lên lịch các tác vụ nền bằng cách sử dụng JMSJOBQUEUEBUNDLE.
Điều duy nhất bạn phải thiết lập là người giám sát và định cấu hình quy trình của bạn:
[program:your_websocket_server]
command=php server.php &
process_name=%[program_name]s
numprocs=1
directory=/tmp
autostart=true
autorestart=true
startsecs=5
startretries=10
user=www-data
redirect_stderr=false
stdout_logfile=%capistrano.shared_dir%/jms_job_queue_runner.out.log
stdout_capture_maxbytes=1MB
stderr_logfile=%capistrano.shared_dir%/jms_job_queue_runner.error.log
stderr_capture_maxbytes=1MB
Đã trả lời ngày 4 tháng 7 năm 2018 lúc 19:39Jul 4, 2018 at 19:39
Stephan Vierkantstephan VierkantStephan Vierkant
1.0982 Huy hiệu vàng13 Huy hiệu bạc34 Huy hiệu đồng2 gold badges13 silver badges34 bronze badges