2011-08-02 65 views
5

Tôi có một tập lệnh PHP mà tôi muốn gọi trên một số hành động biểu mẫu."Chuyển hướng đầu ra mơ hồ" có nghĩa là gì?

Lệnh này hoạt động tốt:

/usr/local/bin/php -q script.php > /dev/null 2>&1 & 

Nhưng nó tất cả đi sai khi tôi thêm đối số trong lệnh:

/usr/local/bin/php -q script.php --var=value > /dev/null 2>&1 & 

nó trả "chuyển hướng đầu ra nhập nhằng".

Tôi đã đọc bài viết này http://www.xaprb.com/blog/2006/06/06/what-does-devnull-21-mean/ và đã cố gắng hầu như mọi thứ có thể theo như tôi có thể hiểu và vẫn không biết cách khắc phục.

Hãy giúp tôi.

+0

nào nó hoạt động mà không cần --var ?, chỉ "/ usr/local/bin/php -q script.php value>/dev/null 2> & 1 &" và lấy nó từ mảng $ argv – sukinsan

+0

Vỏ nào bạn đang sử dụng? – jw013

+0

Tôi đang sử dụng tiêu chuẩn FreeBSD vỏ –

Trả lời

4

Tôi giả sử bạn đang sử dụng csh hoặc một trong các biến thể của nó, sử dụng:

... >&/dev/null 
+0

không có tôi đang sử dụng lệnh PHP shell_exec đơn giản với /usr/local/bin/php -q script.php --var = value>/dev/null 2> & 1 & và nó trả về chuyển hướng đầu ra mơ hồ –

+0

nhưng shell_exec kêu gọi một vỏ 'thực' ;-). Thực hiện một lệnh php như shell_exec ('Echo $ SHELL') và cho chúng tôi biết đầu ra. HOẶC nếu bạn biết rằng nó đang gọi bash, sau đó cho chúng tôi biết điều đó. Chúc may mắn. – shellter

0

Liệu công việc sau cho bạn:

/usr/local/bin/php -q script.php --var=value > /dev/null 2>/dev/null & 
+0

đã cố gắng này, đã không làm việc .. xin vui lòng giúp tôi nếu có ai có thể cho tôi một số bên trong (chi tiết hơn một chút) cách hoạt động này .. và làm thế nào chúng ta có thể sử dụng thực tế của nó. –

1

Bạn nên cố gắng này:

/usr/local/bin/php -q script.php --var=value > &1 & 

Và cho chúng tôi biết hậu quả của việc chạy lệnh này.

Bạn có nhận được kết quả được chuyển hướng đúng không?

Tôi tin rằng lỗi này liên quan đến quyền người dùng trên hệ điều hành. Tôi chạy lệnh tương tự của bạn trên môi trường thử nghiệm đang chạy AiX bằng cách sử dụng người dùng root và nó hoạt động OK nhưng một khi tôi đã thử với tư cách là một người dùng khác, tôi nhận được 'Lỗi chuyển hướng mơ hồ'.

Hoặc người dùng không có quyền truy cập vào STDERR, con trỏ STDOUT hoặc quyền truy cập hạn chế chuỗi chuyển hướng theo một cách nào đó.

Hy vọng điều này sẽ hữu ích. EDIT: Có lẽ liên kết này có thể giúp: http://www.faqs.org/faqs/unix-faq/faq/part2/section-9.html

Các vấn đề liên quan