จะรีสตาร์ทเจนกินส์ด้วยตนเองได้อย่างไร


816

ฉันเพิ่งเริ่มทำงานกับเจนกินส์และมีปัญหา หลังจากติดตั้งปลั๊กอินหลายตัวมันบอกว่ามันต้องเริ่มต้นใหม่และเข้าสู่โหมด "ปิดเครื่อง" แต่ไม่ต้องรีสตาร์ท

ฉันจะรีสตาร์ทด้วยตนเองได้อย่างไร


34
หมายเหตุ: "เจนกินส์กำลังปิดตัวลง" ไม่ได้ปิดตัวลงจริง ๆ เพียงแจ้งผู้ใช้หลายคนที่อาจต้องการสร้างบางสิ่งบางอย่างที่เจนกินส์กำลังจะเริ่มต้นใหม่ในไม่ช้า
Khez

1
บางสิ่งที่จะต้องทราบว่าฉันไม่ได้สังเกตเห็นว่ามีคนอื่นพูดถึง ... ถ้าคุณใส่เจนกินส์ในโหมดปิดมันไม่ได้ปิดตัวลงจริง ๆ ซึ่งได้รับการกล่าวถึง สิ่งที่ไม่ได้สังเกตคือมันหยุดการสร้างใหม่จากการเริ่มต้น หากคุณต้องการให้บิลด์สมบูรณ์ก่อนที่คุณจะรีสตาร์ทคุณควรให้เจนกินส์เข้าสู่โหมดปิดการทำงานแล้วปล่อยให้บิลด์เสร็จแล้วจึงทำการ "รีสตาร์ท" ด้วยวิธีการที่คุณเลือกจากด้านบน
TheRedSeth

ตั้งแต่เวอร์ชั่น 1.442 เจนกินส์ไม่ได้ต้องการที่จะเริ่มต้นใหม่หลังจากการติดตั้งปลั๊กอินใหม่ (s), การใช้งาน“ติดตั้งโดยไม่ต้องเริ่มต้นใหม่” น่าเสียดายที่ฟีเจอร์นี้ใช้ไม่ได้กับการอัปเดตหรือถอนการติดตั้ง
luka5z

คำตอบ:


1942

ในการรีสตาร์ท Jenkins ด้วยตนเองคุณสามารถใช้คำสั่งใดคำสั่งหนึ่งต่อไปนี้ (โดยป้อน URL ในเบราว์เซอร์):

(jenkins_url)/safeRestart- ช่วยให้งานที่กำลังดำเนินการทั้งหมดเสร็จสมบูรณ์ งานใหม่จะยังคงอยู่ในคิวเพื่อเรียกใช้หลังจากการรีสตาร์ทเสร็จสมบูรณ์

(jenkins_url)/restart - บังคับให้รีสตาร์ทโดยไม่ต้องรอให้การสร้างเสร็จสมบูรณ์


14
สำหรับ safeRestart ดูstackoverflow.com/a/15555339/260122 java -jar /var/cache/jenkins/war/WEB-INF/jenkins-cli.jar -s http://localhost:8080/ safe-restart (หากติดตั้งโดย rpm หรือ deb มิฉะนั้นปรับตามนั้น)
1466 clacke

13
สิ่งนี้ทำให้เกิดRestartNotSupportedExceptionใน Jenkins 1.532.1 ด้วย IcedTea 2.3.9 sudo /etc/init.d/jenkins restartทำงานให้ฉันแม้ว่า
Matthias Braun

4
ใน Windows ให้ใช้บริการ Windows แทนบรรทัดคำสั่ง
Mag

8
มีลิงก์ภายในจากเจนกินส์ที่จะทำเช่นนี้แทนการจำเวทย์มนตร์ของ URL หรือไม่?
rogerdpack

5
ไม่สามารถใช้งานได้ในเว็บ gui หรือไม่
realtebo


115

บน Ubuntu หรือ Debian เมื่อติดตั้งผ่านapt-get/ dpkg:

$ sudo /etc/init.d/jenkins restart
Usage: /etc/init.d/jenkins {start|stop|status|restart|force-reload}

1
https://support.cloudbees.com/hc/en-us/articles/216118748-How-to-Start-Stop-or-Restart-your-Instance-พูดว่าสำคัญ: อย่าเปิดวิธีการเริ่ม | หยุด | รีสตาร์ทด้วยตนเองเป็น $ sudo /etc/init.d/jenkins start | stop | restart เนื่องจากทำให้บริการของคุณไม่น่าเชื่อถือเนื่องจากจะรับสภาพแวดล้อมจากผู้ใช้รูทเมื่อเทียบกับสภาพแวดล้อมเปล่าที่เชื่อถือได้ที่สะอาดซึ่งถูกกำหนดโดยตัวเรียกใช้งาน init (service / systemctl )
Battey

96

SafeRestart ปลั๊กอินต้องกล่าวถึง มันค่อนข้างมีประโยชน์ ( รีสตาร์ทอย่างปลอดภัย ) มันเพิ่มลิงค์เพื่อให้สามารถรีสตาร์ทจากเมนูหลัก:

ป้อนคำอธิบายภาพที่นี่


ฉันมักจะใช้คุณสมบัตินี้สำหรับการติดตั้งปลั๊กอิน
imdibiji

แปลกประหลาดที่ปลั๊กอินนี้ไม่รวมอยู่ในค่าเริ่มต้น
รูปที่

70

คำสั่งด้านล่างใช้ได้กับฉันในRed Hat Linuxและควรทำงานกับ Ubuntu ด้วย

  • หากต้องการทราบสถานะของเจนกินส์:

    sudo service jenkins status
    
  • วิธีเริ่มเจนกินส์:

    sudo service jenkins start
    
  • เพื่อหยุดเจนกินส์:

    sudo service jenkins stop
    
  • ในการรีสตาร์ทเจนกินส์:

    sudo service jenkins restart
    

การสาธิตที่พร้อมรับคำสั่ง:

[root@varunHome]# sudo service jenkins status
jenkins (pid  7468) is running...

[root@varunHome]# sudo service jenkins stop
Shutting down Jenkins               [  OK  ]

[root@varunHome]# sudo service jenkins start
Starting Jenkins                    [  OK  ]

[root@varunHome]# sudo service jenkins restart
Shutting down Jenkins               [  OK  ]

Starting Jenkins                    [  OK  ]
[root@varunHome]#

คนที่กำลังใช้ windows

เปิดคอนโซล / บรรทัดคำสั่ง -> ไปที่ไดเรกทอรีการติดตั้ง Jenkins ของคุณ ดำเนินการคำสั่งต่อไปนี้ตามลำดับ:

To stop:
jenkins.exe stop

To start:
jenkins.exe start

To restart:
jenkins.exe restart


37

บน Windows ถ้าคุณติดตั้งมันเป็นบริการที่ให้ไปที่ศูนย์บริการ ( เริ่มต้นRun : services.msc) ค้นหาเจนกินส์, คลิกขวา→ เริ่มต้นใหม่

หากไม่ช่วย (UI ไม่ตอบสนอง) ให้เปิดกระบวนการจัดการงานของ Windows → กระบวนการฆ่าjava.exeและเริ่มบริการอีกครั้ง


7
การพยายามเข้าถึง / safeRestart บน windows จะนำไปสู่: javax.servlet.ServletException: hudson.lifecycle.RestartNotSupportedException: วงจรชีวิตเริ่มต้นของ Windows ไม่สนับสนุนการรีสตาร์ท
x29a

1
เมื่อ/safeRestartไม่พร้อมใช้งานให้ใช้/safeExitก่อนรีสตาร์ทด้วยตนเอง
Jesse Glick

19

หากคุณใช้งาน Jenkins บน Mac OS X คุณสามารถหยุดบริการด้วยตนเองโดยดำเนินการคำสั่งนี้:

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

1
จากนั้นคุณสามารถเริ่มต้นใหม่โดยใช้load
kraftydevil

17

สิ่งนี้สามารถทำได้โดยใช้Jenkins CLI :

java -jar jenkins-cli.jar -s http://[jenkins-server]/ restart

ไฟล์พร้อมกับรายการเต็มรูปแบบของคำสั่งที่มีให้บริการที่jenkins-cli.jarhttp://[jenkins-server]/cli


12

หากคุณต้องการเพียงแค่โหลดไฟล์การกำหนดค่าใหม่ก็สามารถทำได้

    <jenkins_url>/reload

สิ่งนี้เร็วกว่าหากคุณทำการเปลี่ยนแปลงเล็กน้อยในไฟล์กำหนดค่าเช่นconfig.xmlในระบบไฟล์โดยตรงหรือทำสำเนาของงานผ่านระบบไฟล์ (ไม่ใช่ผ่านเบราว์เซอร์)


10

ขึ้นอยู่กับว่าเจนกินส์เริ่มต้นอย่างไร

  • เป็นบริการ: sudo service jenkins restart, sudo /etc/init.d/jenkins restartฯลฯ

  • เป็นเว็บแอปพลิเคชันในการติดตั้ง Tomcat: รีสตาร์ท Tomcat ของคุณหรือเพียงแค่รีสตาร์ทแอปพลิเคชันใน Tomcat ไปhttp://<tomcat-server>:8080/manager/listหรือหลังจากการตรวจสอบการตี+http://<tomcat-server>:8080/manager/stop?path=/myapphttp://<tomcat-server>:8080/manager/start?path=/myapp

  • เปิดตัวด้วย just java -jar: kill it ( kill -9 <pid>) และเปิดใช้อีกครั้ง

  • เปิดตัวด้วยjava -jarแต่จากหัวหน้างาน:supervisorctl restart jenkins


เพียงแค่เลือกให้คุณใช้คำตอบของกรณีที่ดี !!
user43968


8

บน Windows

ไปที่การติดตั้ง Jenkins เปิด cmd และเรียกใช้:

  • หากต้องการหยุด:

    jenkins.exe stop
    
  • เริ่ม:

    jenkins.exe start
    
  • ในการรีสตาร์ท:

    jenkins.exe restart
    

8

บางครั้งจะมีกระบวนการเจนกินส์ที่เก่าแก่เกินไปดังนั้นps -ef | grep jenkinsฆ่าพวกมันทั้งหมด รีสตาร์ทตามที่อธิบายไว้ในคำตอบก่อนหน้านี้และมันจะสะอาด

ps -ef | grep jenkins
sudo kill -kill <pid>


5

ถ้าคุณมีความสามารถที่จะเข้าถึงได้ในเว็บเบราเซอร์เพียงเพิ่มตัวอย่างเช่น/restartlocalhost:8080/restart

หากคุณใช้บริการเป็นบริการจากนั้นเข้าสู่เซิร์ฟเวอร์ของคุณและดำเนินการคำสั่ง:

sudo service jenkins stop/start

4

สำหรับการรีสตาร์ทเจนกินส์ด้วยตนเองโดยใช้เบราว์เซอร์:

ป้อนwww.jenkins-ip/restart (ตัวอย่างhttp://localhost:8080/restart) ของคุณในเบราว์เซอร์ เจนกินส์จะรีสตาร์ทและโหลดหน้าเข้าสู่ระบบโดยอัตโนมัติหลังจากรีสตาร์ท


3

JenkinURL / restart จะทำการรีสตาร์ท


/usr/local/etc/rc.d/jenkins restart

แต่/usr/local/etc/rc.d/jenkinไม่ใช่ URL (?) คุณสามารถทำอย่างละเอียด?
Peter Mortensen

3

สำหรับ Mac

หยุดเจนกินส์

sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist

เริ่มเจนกินส์

sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist


3

มีหลายคนที่กล่าวถึงความจำเป็นในการรีสตาร์ทคอนเทนเนอร์ servlet ถ้า Jenkins ไม่ได้ทำงานเป็นสแตนด์อโลน แต่ Tomcat (หรือสิ่งที่ใช้) ไม่จำเป็นต้องเริ่มต้นใหม่ Tomcat สามารถบังคับให้เริ่มการทำงานของบริบทเจนกินส์ถ้าเจนกินส์รีสตาร์ทของคุณหยุดทำงาน

แต่เพื่อพูดถึงความคิดเห็นอื่นเมื่อคุณให้เจนกินส์เข้าสู่โหมด "ปิดระบบ" มันจะไม่ปิดตัวลงจริงๆ มันหยุดงานใหม่จากการดำเนินการและวางแบนเนอร์สีแดงขนาดยักษ์บนหน้าระบบเพื่อให้ทุกคนรู้ว่าผู้ดูแลระบบต้องการที่จะลงในที่สุด มีปลั๊กอินที่จะทริกเกอร์การรีสตาร์ทคอนเทนเนอร์ servlet สำหรับบริบทนั้นหลังจากบิลด์ทั้งหมดเสร็จสมบูรณ์

ทางเลือกคือรอจนกว่างานที่ทำล่าสุดจะเสร็จสมบูรณ์จากนั้นจึงเตะ Jenkins ออกจากคอนเทนเนอร์ด้วยตนเอง (หรือผ่านตัวเลือกบรรทัดคำสั่งที่ผู้อื่นพูดถึงสำหรับการติดตั้ง Jenkins แบบสแตนด์อโลน)


3

หากถูกปรับใช้เป็นไฟล์ war ให้รีสตาร์ทแอ็พพลิเคชันเซิร์ฟเวอร์ตัวอย่างเช่น Tomcat


2

สำหรับCentOS :

sudo systemctl restart jenkins

sudo systemctl status Jenkins

เจนกินส์จะกระตือรือร้นและวิ่งขึ้นไปบน PID


2

หากอยู่ในคอนเทนเนอร์ Docker คุณสามารถรีสตาร์ทคอนเทนเนอร์ของคุณได้ สมมติว่าชื่อคอนเทนเนอร์คือjenkinsเพื่อให้คุณสามารถ:

docker restart jenkins

หรือ

docker stop jenkins
docker start jenkins

สิ่งสำคัญ! บนนักเทียบท่า - ข้อมูลของเจนกินส์จะต้องคงอยู่ (คุณอาจสูญเสียงานที่กำลังทำงานทรัพยากรการสร้างข้อมูล ฯลฯ ... ) ดังนั้นควรระมัดระวังคุณไม่ควรใช้ "รีสตาร์ท" และใช้หยุดและเริ่มต้นที่ภาพนักเทียบท่า วิธีแก้ปัญหาคือ: sudo docker ps -> หยุด sudo docker <dockerImageID> -> sudo docker start <dockerImageID>
avivamg

2

คุณมีตัวเลือกมากมายในการรีสตาร์ท Jenkins ด้วยตนเอง แต่ส่วนใหญ่เป็นสอง (URL หรือบรรทัดคำสั่ง):

  • ทางเลือก 1:การใช้ URL การติดตั้ง Jenkins:

    Jenkins_URL/restart.

    ตัวอย่าง: http://jenkinsserver.com/restart

    การรีสตาร์ทชนิดนี้บังคับให้รีสตาร์ทโดยไม่ต้องรอการสร้างให้เสร็จสมบูรณ์

    หากคุณต้องการรอให้งานสิ้นสุดลงคุณสามารถใช้:

    Jenkins_URL/safeRestart.

    ตัวอย่าง: http://jenkinsserver.com/safeRestart

  • ทางเลือกที่ 2:การใช้บรรทัดคำสั่งขึ้นอยู่กับการติดตั้ง Jenkins ของคุณ

    • หากคุณกำลังติดตั้งโดยใช้rpmหรือdebแพ็คเกจหรือคุณมีการติดตั้ง Jenkins ในRed Hat , UbuntuหรือDebianคุณสามารถใช้คำสั่งเหล่านี้:

    • sudo service jenkins restart

      รีสตาร์ท Jenkins ในขั้นตอนเดียว

    • sudo service jenkins stopและsudo service jenkins start,

      รีสตาร์ตนี้เจนกินส์ในสอง steeps

      หมายเหตุ: หากคุณต้องการตรวจสอบสถานะเจนกินส์คุณสามารถใช้คำสั่งนี้: sudo service jenkins status

    • หากคุณใช้CentOSคุณสามารถใช้คำสั่งนี้:

      sudo systemctl restart jenkins
      

      หมายเหตุ: หากคุณต้องการตรวจสอบสถานะเจนกินส์คุณสามารถใช้คำสั่งนี้: sudo systemctl status Jenkins




1

ลองด้านล่าง มันใช้งานได้สำหรับฉัน

sudo service jenkins status  

มันจะให้ PID ของเจนกินส์ ตอนนี้ทำ

kill -15 [PID]

sudo service jenkins start

3
สงสัยว่าทำไมคุณไม่เพียงแค่ทำ "บริการ (sudo) เจนกินส์รีสตาร์ท"?
nembleton

ใช่ถูกต้องอย่างแน่นอน แต่ฉันต้องเผชิญกับปัญหาบางครั้งที่มันไม่ได้สำหรับฉัน
Avinash Agrawal

1

หากไม่มีอะไรทำงานแล้วหากระบวนการเจนกินส์โดย

ps aux | grep java

แล้วฆ่ามัน:

kill -9 [PID]

sudo service jenkins start

แก้ไข: ค้นหากระบวนการ java ที่เกี่ยวข้องกับเจนกินส์


4
ค่อนข้างอันตรายที่จะเพียงแค่ค้นหากระบวนการ java คุณคิดว่าไม่? หนึ่งควร grep สำหรับบางสิ่งบางอย่างมากกว่าเจนกินส์เฉพาะ
ทิมBüthe

0

หากคุณไม่มีสิทธิ์หรือเข้าถึงบรรทัดคำสั่งโดยตรงคุณสามารถทำได้เช่นหนึ่งในสิ่งต่อไปนี้:

  1. สร้างงานด้วยขั้นตอน shell / batch ที่จะเริ่มการทำงานจากโฟลเดอร์การติดตั้ง Jenkins
  2. ติดตั้ง / อัปเดตปลั๊กอินบางอันในขณะที่ตรวจสอบ "รีสตาร์ทหลังการติดตั้ง" (อย่างน้อยก็ใช้งานได้ในเวอร์ชั่นเก่า)

ทั้งสองข้างต้นเป็นแฮ็ก แต่ฉันใช้มันอย่างแข็งขันในสภาพแวดล้อมที่ จำกัด ซึ่งไม่มีใครอยากให้ฉันรีสตาร์ทเจนกินส์


0

หากคุณใช้ Jenkins เป็นเซิร์ฟเวอร์บนเครื่อง Windows ให้เปิดตัวจัดการงานและสลับไปที่แท็บบริการ ค้นหาเจนกินส์แล้วรีสตาร์ท

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.