Làm cách nào để thay đổi mức độ chi tiết của lệnh dịch vụ?


13

Tôi đang chạy Kali 2 Linux. Tôi sử dụng lệnh systemctlhoặc serviceđể bắt đầu một dịch vụ như Apache. Trên phiên bản trước của Kali, lệnh thực sự in thông báo "OK" khi bắt đầu dịch vụ; nhưng trên phiên bản này, nó chỉ rơi trở lại dòng lệnh không nói gì.

Có cách nào để thay đổi mức độ chi tiết hoặc làm cho nó hoạt động như phiên bản trước đã làm không?


Vâng thường khi không có tin nhắn có nghĩa là thành công.
Svetlin Tonchev

Câu trả lời:


1

Các servicelệnh (thường trên /usr/sbin/) là ngày nay thường chỉ là một bashshell script mà gọi các systemctllệnh. Bạn có thể dễ dàng sửa đổi nó để đưa ra đầu ra mà bạn muốn.


0

journaldLà daemon tập trung thu thập dữ liệu từ tất cả các nguồn có sẵn và lưu trữ chúng ở định dạng nhị phân để thao tác dễ dàng và năng động. Như một câu trả lời cho câu hỏi của bạn, tôi sẽ nói rằng thông thường khi không có đầu ra có nghĩa là "OK" và nếu bạn muốn chắc chắn sử dụng journalctlđể kiểm tra nhật ký.


Tôi biết, nhưng tôi thích cảm giác tin nhắn ok đã quen với nó và tôi cần nó để bật
RL.AdmirusX

Cho dù dịch vụ bắt đầu hay không, không có đầu ra. Tôi muốn thêm một bí danh: dịch vụ $ 1 bắt đầu, trạng thái dịch vụ $ 1
Lenne

-1

Bạn có thể thêm một echo $?lệnh vào để hiển thị trạng thái 1 hoặc 0.

&&có tác dụng chỉ chạy lệnh thứ hai nếu trước đó thành công.

systemctl start mysqld.service && echo $? 

Điều này sẽ hiển thị một trạng thái:

Nếu thất bại, nó sẽ in một thông báo tại sao nó thất bại

nếu nó thành công bạn sẽ chỉ thấy 0

Trong tâm trí bạn có thể nối thêm k 0 = 0k

Đây là một cách giải quyết rẻ tiền nhưng sẽ mang lại cho bạn lợi nhuận ok sau các cuộc gọi systemctl của bạn.


2
&& echo $?có vẻ như là một điều đặc biệt để làm; Nó sẽ in 0hoặc không có gì cả. Bạn cũng có thể nói && echo OKhay && echo Success.
G-Man nói 'Phục hồi Monica'

1
Không, nó không giống như tiếng vang ok. Nó lặp lại kết quả thực tế của lệnh cuối cùng. Nếu là 0 thì nó đã thành công. Nếu không thành công, nó sẽ là 1.
Mark Stewart

1
Nhưng bạn đang nói && echo $?! Nếu lệnh (đầu tiên) thất bại, shell sẽ không chạy lệnh thứ hai (lệnh sau  &&) và vì vậy nó sẽ không in bất cứ thứ gì!
G-Man nói 'Phục hồi Monica'

1
Không khi nó bị lỗi, nó sẽ in thông báo mà systemctl gửi khi dịch vụ không khởi động. Chỉ cần thử bản thân nó nó hoạt động tôi đã sử dụng nó. Chẳng hạn (tôi phải sử dụng các cuộc gọi dịch vụ vì RHEL thực hiện đầu ra không thành công hoặc không thành công) Khi một dịch vụ thất bại, bạn nhận được đầu ra systemctl tiêu chuẩn Khi dịch vụ bắt đầu, bạn nhận được 0 Sẽ là 1 câu lệnh thứ hai đã chạy (có thể kiểm tra với; thay vì &&) Dịch vụ chạy:
Mark Stewart

2
Tôi đã không nói rằng nó không hoạt động. Tôi đã nói rằng nó && echo $?hoạt động giống hệt như && echo 0- Máy tính $?làm cho nó trông giống như bạn đang làm một việc gì đó tinh vi hơn bạn - và, miễn là bạn sẽ làm một việc gì đó không phức tạp như && echo 0, bạn cũng có thể làm && echo OK, điều đó sẽ đưa ra kết quả mà câu hỏi yêu cầu. Sự khác biệt của bạn và bạn có thể  echo 0giống hệt như echo OK? Tất nhiên là không rồi; 0 là một ký tự, là một chữ số, trong khi đó OK là hai ký tự, là các chữ cái (chữ cái). Tât nhiên. Tiết (Cont'd)
G-Man nói 'Tái lập lại Monica'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.