Tôi đang cố cài đặt/khởi động Jenkins
(2.303) trong Ubuntu, nhưng bây giờ cho Người phục vụ (vì máy tính để bàn không có vấn đề gì cả)
Java_HOME
và JENKINS_HOME
các biến môi trường được xác định trên .Hồ sơ
tập tin
Về thông tin Java:
phiên bản java
phiên bản openjdk "11.0.11" 2021-04-20
Môi trường thời gian chạy OpenJDK Áp dụngOpenJDK-11.0.11+9 (bản dựng 11.0.11+9)
OpenJDK 64-Bit Server VM AdoptOpenJDK-11.0.11+9 (bản dựng 11.0.11+9, chế độ hỗn hợp)
phiên bản javac
jac 11.0.11
java nào
/home/user/something/java/openjdk/jdk-11.0.11+9/bin/java
Nhưng đối với lần thực thi đầu tiên để khởi động Jenkins, sẽ xảy ra như sau
java -jar jenkins.war --httpPort=9090
Chạy từ: /home/user/something/jenkins/bin/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
22-07-2021 18:15:09.003+0000 [id=1] THÔNG TIN org.eclipse.jetty.util.log.Log#initialized: Đã khởi tạo ghi nhật ký @1892ms vào org.eclipse.jetty.util.log.JavaUtilLog
22-07-2021 18:15:09.374+0000 [id=1] THÔNG TIN winstone.Logger#logInternal: Bắt đầu trích xuất từ tệp tin chiến tranh
22-07-2021 18:15:09.474+0000 [id=1] CẢNH BÁO o.e.j.s.handler.ContextHandler#setContextPath: Đường dẫn ngữ cảnh trống
22-07-2021 18:15:09.782+0000 [id=1] THÔNG TIN org.eclipse.jetty.server.Server#doStart: jetty-9.4.42.v20210604; được xây dựng: 2021-06-04T17:33:38.939Z; git: 5cd5e6d2375eeab146813b0de9f19eda6ab6e6cb; jvm 11.0.11+9
22-07-2021 18:15:11.116+0000 [id=1] THÔNG TIN o.e.j.w.StandardDescriptorProcessor#visitServlet: KHÔNG Hỗ trợ JSP cho /, không tìm thấy org.eclipse.jetty.jsp.JettyJspServlet
22-07-2021 18:15:11.278+0000 [id=1] THÔNG TIN o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
22-07-2021 18:15:11.281+0000 [id=1] THÔNG TIN o.e.j.s.s.DefaultSessionIdManager#doStart: Không đặt SessionScavenger, sử dụng giá trị mặc định
22-07-2021 18:15:11.284+0000 [id=1] THÔNG TIN o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging cứ sau 600000 mili giây
22-07-2021 18:15:12.762+0000 [id=1] THÔNG TIN hudson.WebAppMain#contextInitialized: Thư mục chính của Jenkins: /home/user/something/jenkins/contents được tìm thấy tại: EnvVars.masterEnvVars.get("JENKINS_HOME" )
22-07-2021 18:15:13.025+0000 [id=1] NGHIÊM TRỌNG hudson.util.BootFailure#publish: Không thể khởi tạo Jenkins
java.lang.NullPulumException
tại java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
tại java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
tại java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
tại java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
tại java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:379)
tại java.base/java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
tại java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
tại java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
Nguyên nhân: java.lang.reflect.InvocationTargetException
tại java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Phương thức gốc)
tại java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
tại java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
tại java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
tại java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
Nguyên nhân: java.lang.InternalError
tại java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
tại java.base/java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
tại java.desktop/java.awt.Font.getFont2D(Font.java:497)
tại java.desktop/java.awt.Font.getFamily(Font.java:1410)
tại java.desktop/java.awt.Font.getFamily_NoClientCode(Font.java:1384)
tại java.desktop/java.awt.Font.getFamily(Font.java:1376)
tại java.desktop/java.awt.Font.toString(Font.java:1869)
tại hudson.util.ChartUtil.<clinit>(ChartUtil.java:270)
tại hudson.WebAppMain.contextInitialized(WebAppMain.java:251)
Nguyên nhân: hudson.util.AWTProblem
tại hudson.WebAppMain.contextInitialized(WebAppMain.java:252)
tại org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1068)
tại org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:572)
tại org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:997)
tại org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:746)
tại org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
tại org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449)
tại org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414)
tại org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:911)
tại org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
tại org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
tại org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
tại org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
tại org.eclipse.jetty.server.Server.start(Server.java:423)
tại org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
tại org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
tại org.eclipse.jetty.server.Server.doStart(Server.java:387)
tại org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
tại winstone.Launcher.<init>(Launcher.java:192)
tại winstone.Launcher.main(Launcher.java:369)
tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.base/java.lang.reflect.Method.invoke(Method.java:566)
tại Main._main(Main.java:375)
tại Main.main(Main.java:151)
CẢNH BÁO: Đã xảy ra hoạt động truy cập phản chiếu bất hợp pháp
CẢNH BÁO: Truy cập phản xạ bất hợp pháp của org.codehaus.groovy.reflection.CachedClass (tệp:/home/user/something/jenkins/contents/war/WEB-INF/lib/groovy-all-2.4.12.jar) vào phương thức java .lang.Object.Finalize()
CẢNH BÁO: Vui lòng xem xét việc báo cáo điều này với những người bảo trì org.codehaus.groovy.reflection.CachedClass
CẢNH BÁO: Sử dụng --illegal-access=warn để bật cảnh báo về các hoạt động truy cập phản ánh bất hợp pháp khác
CẢNH BÁO: Tất cả các hoạt động truy cập bất hợp pháp sẽ bị từ chối trong một bản phát hành trong tương lai
22-07-2021 18:15:13.834+0000 [id=1] THÔNG TIN o.e.j.s.handler.ContextHandler#doStart: Đã bắt đầu w.@27d57a2c{Jenkins v2.303,/,file:///home/user/something/jenkins /contents/war/,AVAILABLE}{/home/user/something/jenkins/contents/war}
22-07-2021 18:15:13.893+0000 [id=1] THÔNG TIN o.e.j.server.AbstractConnector#doStart: Đã bắt đầu ServerConnector@4c178a76{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
22-07-2021 18:15:13.893+0000 [id=1] THÔNG TIN org.eclipse.jetty.server.Server#doStart: Bắt đầu @6790ms
22-07-2021 18:15:13.897+0000 [id=22] THÔNG TIN winstone.Logger#logInternal: Winstone Servlet Engine đang chạy: controlPort=disabled
Thông qua một PC phụ có trình duyệt web, cấu hình có thể thực hiện được, vì phiên bản máy chủ không có GUI - dù sao thì Jenkins đã bắt đầu với thông báo lỗi đó - có thể sử dụng được http://192.168.1.XX:9090
trong trình duyệt web - vì vậy Jenkins hiển thị (theo một cách nào đó) thông báo sau:
Lỗi
AWT không được cấu hình đúng trên máy chủ này.
Có lẽ bạn cần chạy vùng chứa của mình bằng "-Djava.awt.headless=true"?
Xem thêm: https://www.jenkins.io/redirect/troubleshooting/java.awt.headless
java.lang.NullPulumException
tại java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
tại java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
tại java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
tại java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
tại java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:379)
tại java.base/java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
tại java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
tại java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
Nguyên nhân: java.lang.reflect.InvocationTargetException
tại java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Phương thức gốc)
tại java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
tại java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
tại java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
tại java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
Nguyên nhân: java.lang.InternalError
tại java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
tại java.base/java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
tại java.desktop/java.awt.Font.getFont2D(Font.java:497)
tại java.desktop/java.awt.Font.getFamily(Font.java:1410)
tại java.desktop/java.awt.Font.getFamily_NoClientCode(Font.java:1384)
tại java.desktop/java.awt.Font.getFamily(Font.java:1376)
tại java.desktop/java.awt.Font.toString(Font.java:1869)
tại hudson.util.ChartUtil.<clinit>(ChartUtil.java:270)
tại hudson.WebAppMain.contextInitialized(WebAppMain.java:251)
tại org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1068)
tại org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:572)
tại org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:997)
tại org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:746)
tại org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
tại org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449)
tại org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414)
tại org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:911)
tại org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
tại org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
tại org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
tại org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
tại org.eclipse.jetty.server.Server.start(Server.java:423)
tại org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
tại org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
tại org.eclipse.jetty.server.Server.doStart(Server.java:387)
tại org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
tại winstone.Launcher.<init>(Launcher.java:192)
tại winstone.Launcher.main(Launcher.java:369)
tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.base/java.lang.reflect.Method.invoke(Method.java:566)
tại Main._main(Main.java:375)
tại Main.main(Main.java:151)
Vì vậy, thực hiện ngay bây giờ bằng cách sử dụng Djava.awt.headless=true
java -Djava.awt.headless=true -jar jenkins.war --httpPort=9090
Chạy từ: /home/user/something/jenkins/bin/jenkins.war
webroot: EnvVars.masterEnvVars.get("JENKINS_HOME")
22-07-2021 18:30:37.797+0000 [id=1] THÔNG TIN THÔNG TIN org.eclipse.jetty.util.log.Log#initialized: Đã khởi tạo ghi nhật ký @2214ms vào org.eclipse.jetty.util.log.JavaUtilLog
22-07-2021 18:30:38.160+0000 [id=1] THÔNG TIN winstone.Logger#logInternal: Bắt đầu trích xuất từ tệp chiến tranh
22-07-2021 18:30:38.231+0000 [id=1] CẢNH BÁO o.e.j.s.handler.ContextHandler#setContextPath: Đường dẫn ngữ cảnh trống
22-07-2021 18:30:38.477+0000 [id=1] THÔNG TIN org.eclipse.jetty.server.Server#doStart: jetty-9.4.42.v20210604; được xây dựng: 2021-06-04T17:33:38.939Z; git: 5cd5e6d2375eeab146813b0de9f19eda6ab6e6cb; jvm 11.0.11+9
22-07-2021 18:30:39.776+0000 [id=1] THÔNG TIN o.e.j.w.StandardDescriptorProcessor#visitServlet: KHÔNG Hỗ trợ JSP cho /, không tìm thấy org.eclipse.jetty.jsp.JettyJspServlet
22-07-2021 18:30:39.949+0000 [id=1] THÔNG TIN o.e.j.s.s.DefaultSessionIdManager#doStart: DefaultSessionIdManager workerName=node0
22-07-2021 18:30:39.953+0000 [id=1] THÔNG TIN o.e.j.s.s.DefaultSessionIdManager#doStart: Không đặt SessionScavenger, sử dụng giá trị mặc định
22-07-2021 18:30:39.956+0000 [id=1] THÔNG TIN o.e.j.server.session.HouseKeeper#startScavenging: node0 Scavenging cứ sau 600000 mili giây
22-07-2021 18:30:41.569+0000 [id=1] THÔNG TIN hudson.WebAppMain#contextInitialized: Thư mục chính của Jenkins: /home/user/something/jenkins/contents được tìm thấy tại: EnvVars.masterEnvVars.get("JENKINS_HOME" )
22-07-2021 18:30:41.840+0000 [id=1] NGHIÊM TRỌNG hudson.util.BootFailure#publish: Không thể khởi tạo Jenkins
java.lang.NullPulumException
tại java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262)
tại java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225)
tại java.desktop/sun.awt.FontConfiguration.init(FontConfiguration.java:107)
tại java.desktop/sun.awt.X11FontManager.createFontConfiguration(X11FontManager.java:719)
tại java.desktop/sun.font.SunFontManager$2.run(SunFontManager.java:379)
tại java.base/java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.desktop/sun.font.SunFontManager.<init>(SunFontManager.java:324)
tại java.desktop/sun.awt.FcFontManager.<init>(FcFontManager.java:35)
tại java.desktop/sun.awt.X11FontManager.<init>(X11FontManager.java:56)
Nguyên nhân: java.lang.reflect.InvocationTargetException
tại java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Phương thức gốc)
tại java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
tại java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
tại java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
tại java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:84)
Nguyên nhân: java.lang.InternalError
tại java.desktop/sun.font.FontManagerFactory$1.run(FontManagerFactory.java:86)
tại java.base/java.security.AccessController.doPrivileged(Phương thức gốc)
tại java.desktop/sun.font.FontManagerFactory.getInstance(FontManagerFactory.java:74)
tại java.desktop/java.awt.Font.getFont2D(Font.java:497)
tại java.desktop/java.awt.Font.getFamily(Font.java:1410)
tại java.desktop/java.awt.Font.getFamily_NoClientCode(Font.java:1384)
tại java.desktop/java.awt.Font.getFamily(Font.java:1376)
tại java.desktop/java.awt.Font.toString(Font.java:1869)
tại hudson.util.ChartUtil.<clinit>(ChartUtil.java:270)
tại hudson.WebAppMain.contextInitialized(WebAppMain.java:251)
Nguyên nhân: hudson.util.AWTProblem
tại hudson.WebAppMain.contextInitialized(WebAppMain.java:252)
tại org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:1068)
tại org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:572)
tại org.eclipse.jetty.server.handler.ContextHandler.contextInitialized(ContextHandler.java:997)
tại org.eclipse.jetty.servlet.ServletHandler.initialize(ServletHandler.java:746)
tại org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:379)
tại org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1449)
tại org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1414)
tại org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:911)
tại org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:288)
tại org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:524)
tại org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
tại org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
tại org.eclipse.jetty.server.Server.start(Server.java:423)
tại org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:110)
tại org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:97)
tại org.eclipse.jetty.server.Server.doStart(Server.java:387)
tại org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73)
tại winstone.Launcher.<init>(Launcher.java:192)
tại winstone.Launcher.main(Launcher.java:369)
tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Phương thức gốc)
tại java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
tại java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
tại java.base/java.lang.reflect.Method.invoke(Method.java:566)
tại Main._main(Main.java:375)
tại Main.main(Main.java:151)
CẢNH BÁO: Đã xảy ra hoạt động truy cập phản chiếu bất hợp pháp
CẢNH BÁO: Truy cập phản xạ bất hợp pháp của org.codehaus.groovy.reflection.CachedClass (tệp:/home/user/something/jenkins/contents/war/WEB-INF/lib/groovy-all-2.4.12.jar) vào phương thức java .lang.Object.Finalize()
CẢNH BÁO: Vui lòng xem xét việc báo cáo điều này với những người bảo trì org.codehaus.groovy.reflection.CachedClass
CẢNH BÁO: Sử dụng --illegal-access=warn để bật cảnh báo về các hoạt động truy cập phản ánh bất hợp pháp khác
CẢNH BÁO: Tất cả các hoạt động truy cập bất hợp pháp sẽ bị từ chối trong một bản phát hành trong tương lai
22-07-2021 18:30:42.721+0000 [id=1] THÔNG TIN o.e.j.s.handler.ContextHandler#doStart: Đã bắt đầu w.@27d57a2c{Jenkins v2.303,/,file:///home/user/something/jenkins /contents/war/,AVAILABLE}{/home/user/something/jenkins/contents/war}
22-07-2021 18:30:42.781+0000 [id=1] THÔNG TIN o.e.j.server.AbstractConnector#doStart: Đã bắt đầu ServerConnector@b2c9a9c{HTTP/1.1, (http/1.1)}{0.0.0.0:9090}
22-07-2021 18:30:42.785+0000 [id=1] THÔNG TIN org.eclipse.jetty.server.Server#doStart: Bắt đầu @7204ms
22-07-2021 18:30:42.789+0000 [id=22] THÔNG TIN winstone.Logger#logInternal: Winstone Servlet Engine đang chạy: controlPort=disabled
Làm thế nào giải quyết điều này?
Hơn
Theo đầu ra thứ 3, có sẵn/đề xuất liên kết sau để biết thêm chi tiết
https://www.jenkins.io/redirect/troubleshooting/java.awt.headless
Mà nó nhắm đến:
nó chỉ ra để cài đặt (đối với trường hợp của tôi)
sudo apt cài đặt ttf-dejavu
sudo apt cài đặt xvfb
nó làm không phải công việc