RE:NODE

Valheim-ის დაგეგმილი restart-ები: cron, პანელის გრაფიკები და განახლებები

ავტორი RE:NODE-ის გუნდი
12 წუთის საკითხავი


Valheim სერვერზე დაგეგმილი restart ღირს და უსაფრთხოა, თუ ერთი წესი სრულდება: სერვერი უნდა გაჩერდეს შეწყვეტის სიგნალით და არასდროს უნდა მოკვდეს, რადგან სუფთა გაჩერება წერს სამყაროს დისკზე. დატვირთული ან მოდიფიცირებული სერვერისთვის დღეში ერთხელ, პატარა ვანილის ჯგუფისთვის კვირაში რამდენჯერმე, საათზე, როცა არავინ თამაშობს. ვანილის Valheim სერვერის მხრიდან მოთამაშეებს ვერ აფრთხილებს, ამიტომ გაფრთხილება Discord-ით ან მოდით მიდის, ან restart-ს მხოლოდ ცარიელ სერვერზე აკეთებ. განახლება restart-ს შეიძლება მოჰყვეს, მაგრამ მხოლოდ ვანილის სერვერზე - მოდიფიცირებული სერვერი არასდროს უნდა განახლდეს თავისით.

ამ გზამკვლევის დანარჩენი ნაწილი აღწერს, როგორ ააწყო ეს შენს Linux მანქანაზე cron-ითა და systemd-ით, Docker-ში და პანელზე, პლუს შეცდომებს, რომლებიც უვნებელ restart-ს აშენებული საღამოს დაკარგვად აქცევს.

რატომ უნდა გადატვირთო Valheim სერვერი საერთოდ#

Valheim სერვერი, რომელიც კვირებით მუშაობს, მუშაობას აგრძელებს, მაგრამ იცვლება. დაგეგმილი restart-ის სარგებლის მიზეზები კონკრეტულია:

  • მეხსიერება ნელა იზრდება. სერვერი მეხსიერებაში ინახავს ყველა ჩატვირთულ ზონასა და ობიექტის ეგზემპლარს. როცა მოთამაშეები იკვლევენ და აშენებენ, სამუშაო ნაკრები იზრდება და ყოველთვის არ მცირდება, როცა ისინი არეალს ტოვებენ. restart მას ისევ შენახული სამყაროს ფასზე აბრუნებს.
  • მოდები გაჟონავენ. BepInEx plugin-ებს მოხალისეები წერენ თამაშისთვის, რომელიც მათ ქვეშ იცვლება. მოდი, რომელიც მითითებებს იჭერს ან cache-ს ზრდის, ხშირია, და ყოველდღიური restart ნელ გაჟონვას მალავს, რომელიც სხვაგვარად ყველაზე ცუდ მომენტში out-of-memory გაჩერებით დასრულდებოდა.
  • განახლებებს ესაჭიროებათ. Valheim-ის პატჩი სერვერის გაჩერებით, SteamCMD-ის გაშვებითა და ხელახლა გაშვებით გამოიყენება. თუ restart უკვე დაგეგმილია, განახლება მის ფარგლებში შეიძლება მოხდეს.
  • ჩარჩენილი მდგომარეობის გასუფთავება. rubber-banding გემები, რეიდი, რომელიც არ მთავრდება, ობიექტები, რომლებიც სინქრონიზაციაზე უარს ამბობენ - უმეტესობა restart-ზე სუფთავდება, რადგან ზონის მფლობელობა თავიდან ნაწილდება პირველ მოსულებზე.

რას არ აგვარებს restart, ისეთივე მნიშვნელოვანია. ის გიგანტური რელიეფშეცვლილი ბაზის მქონე სამყაროს უფრო იაფს არ ხდის, ერთი მოთამაშის ცუდ კავშირს არ კურნავს და ჩატვირთვისას მომხდარ crash-ს არ შეაჩერებს. თუ სერვერი restart-ის შემდეგვე ნელია, პრობლემა სამყაროა ან გეგმა და საძებნი ადგილია Valheim-ის სერვერის წარმადობა და lag.

ერთი გვერდითი ეფექტი crossplay ჯგუფებს ეხება: ექვსნიშნა შესვლის კოდი სერვერის ყოველ გაშვებაზე იცვლება. ყოველდღიური restart ყოველდღიურ ახალ კოდს ნიშნავს, ამიტომ თუ კონსოლის მოთამაშეები ასე უერთდებიან, restart-ის რუტინამ ახალი კოდი იქ უნდა გამოაქვეყნოს, სადაც ისინი ნახავენ. ამაზე ქვემოთ მეტი.

რა სიხშირით და რა დროს#

ჯადოსნური ინტერვალი არ არსებობს. აირჩიე სერვერის გამოყენებიდან:

სერვერიინტერვალირატომ
2-5 მეგობარი, ვანილაკვირაში ან კვირაში ორჯერმცირე ზრდა, ცოტა ობიექტი, გაჟონვადი მოდები არ არის
6-10 მოთამაშე, ვანილა, მომწიფებული სამყაროყოველდღედიდი ნაგებობები და ბევრი მოშინაურებული ჯამდება
ნებისმიერი მოდიფიცირებული სერვერიყოველდღეplugin-ები მეხსიერების ნელი ზრდის ჩვეულებრივი წყაროა
საჯარო საზოგადოებრივი სერვერიყოველდღე, პლუს ღონისძიებებამდემეტი მოთამაშე ნიშნავს ერთდროულად მეტ ჩატვირთულ ზონას

გაუშვი მაშინ, როცა სერვერი ჩვეულებრივ ცარიელია. შეამოწმე, როდის თამაშობს ჯგუფი სინამდვილეში, და არ გამოიცნო - ლოგი ყოველ კავშირს წერს და ერთი კვირა მშვიდ საათს გაჩვენებს. ევროპული ჯგუფისთვის ეს ხშირად 04:00-დან 07:00-მდეა. თუ ჯგუფი სხვადასხვა დროის სარტყელშია, შეიძლება ცარიელი საათი არ იყოს, რაც გაფრთხილების შემთხვევაა და ქვემოთაა.

ორი დროის დეტალი თვითონ საათზე მნიშვნელოვანია. პირველი, იცოდე, რომელ დროის სარტყელს იყენებს გამშვები. cron მანქანის სარტყელს იყენებს, ბევრი კონტეინერი ნაგულისხმევად UTC-ზეა, პანელის გრაფიკი კი იმას მიჰყვება, რაზეც პანელია დაყენებული. restart ჩაიწერე UTC-ში და ზაფხულის დროის გადასვლა არ გაგიკვირვებს. მეორე, ერთსა და იმავე წუთზე სამუშაოებს ნუ დააწყობ. backup, რომელიც სერვერის გაჩერებისას იწყება, ისეთ სამყაროს აკოპირებს, რომელიც ნახევრად ჩაწერილია. restart-ს, backup-სა და სხვა ყველაფერს შორის რამდენიმე წუთი დატოვე. Cron expressions explained ხუთველიან სინტაქსს განმარტავს, თუ უცნობია.

ერთადერთი წესი: სუფთად გააჩერე, რომ სამყარო შეინახოს#

Valheim სამყაროს მეხსიერებაში ინახავს და ყოველ -saveinterval წამში წერს, ნაგულისხმევად 1800. ის ასევე ინახავს, როცა ზრდილობიანად გაჩერებას სთხოვენ. Linux-ზე ეს SIGINT-ს ნიშნავს, იგივე სიგნალს, რაც ტერმინალში Ctrl+C-ის დაჭერისას. სერვერი მას იჭერს, ლოგში World saved წერს და გადის. SIGKILL-ის დაჭერა შეუძლებელია: პროცესი უბრალოდ ქრება და ბოლო შენახვის შემდეგ ყველაფერი მასთან ერთად.

ქვემოთ ყველა restart-ის მეთოდი სწორი სიგნალის გაგზავნასა და საკმარისად დიდხანს ლოდინზე დადის. დიდ, ძველ სამყაროს ჩაწერას ათეულობით წამი შეიძლება დასჭირდეს, ნელი დისკი კი უფრო მეტს. თუ შენი ხელსაწყო ათი წამის შემდეგ ნებას თმობს და მკვლელობამდე ესკალაციას აკეთებს, მონაცემებს ზუსტად იმ სამყაროებზე კარგავ, რომლებიც ყველაზე მნიშვნელოვანია.

systemd unit-ის შესაბამისი ნაწილი ასე გამოიყურება:

/etc/systemd/system/valheim.service (excerpt)
[Service]User=valheimWorkingDirectory=/home/valheim/serverExecStart=/home/valheim/server/start_server.shKillSignal=SIGINTTimeoutStopSec=120Restart=on-failureRestartSec=10

სანამ ენდობი, ერთხელ ხელით გამოსცადე: sudo systemctl restart valheim, შემდეგ journalctl -u valheim -n 50 და დაიწყების ხაზებამდე შენახვის ხაზი მოძებნე. თუ შენახვა არ ჩანს, სიგნალი სერვერის პროცესს არ აღწევს - ჩვეულებრივ იმიტომ, რომ გაშვების სკრიპტი მას ფონზე უშვებს ან exec-ს არ იყენებს. სრული unit, ლოგებისა და restart-ის პოლიტიკის ჩათვლით, არის Valheim-ის systemd სერვისად გაშვება სტატიაში.

restart cron-ით ან systemd timer-ით#

მანქანაზე, რომელსაც აკონტროლებ, ყველაზე მარტივი დაგეგმილი restart root-ის cron-ში ერთი ხაზია, ზემოთ აღწერილი unit-ით გაჩერებისა და გაშვებისთვის:

/etc/cron.d/valheim-restart
# Every day at 05:00 machine time0 5 * * * root /usr/bin/systemctl restart valheim

/etc/cron.d-ის ფაილებს მომხმარებლის ველი აქვთ (აქ root), პირადი crontab-ისგან განსხვავებით. თუ გირჩევნია systemd-ის შიგნით დატოვო, timer იგივე სამუშაოს აკეთებს და journal-ში წერს:

/etc/systemd/system/valheim-restart.timer
[Unit]Description=Daily Valheim restart[Timer]OnCalendar=*-*-* 05:00:00Persistent=false[Install]WantedBy=timers.target
/etc/systemd/system/valheim-restart.service
[Unit]Description=Restart the Valheim server[Service]Type=oneshotExecStart=/usr/bin/systemctl restart valheim.service

ჩართე sudo systemctl enable --now valheim-restart.timer-ით და შემდეგი გაშვება systemctl list-timers-ით ნახე. Persistent=false მნიშვნელოვანია: true-ს შემთხვევაში მანქანა, რომელიც 05:00-ზე გამორთული იყო, გამოტოვებულ restart-ს ჩართვისთანავე გაუშვებდა, რაც restart-ისთვის უაზროა.

LinuxGSM

თუ სერვერი LinuxGSM-ით დაყენდა, ის საკუთარ ბრძანებებს მოაქვს: ./vhserver restart, ./vhserver update (აჩერებს, ანახლებს და უშვებს მხოლოდ მაშინ, თუ ახალი build არსებობს) და ./vhserver monitor (სერვერს ხელახლა უშვებს, თუ ის მოკვდა). ისინი vhserver მომხმარებლის crontab-ში იდება. LinuxGSM vhserver აღწერს დაყენებას და მის კომპრომისებს მარტივ სკრიპტთან შედარებით.

მოთამაშეების გაფრთხილება restart-მდე#

ვანილის Valheim-ს სერვერის კონსოლის შეყვანა და broadcast ბრძანება არ აქვს. სერვერში "restart ხუთ წუთში" ვერ ჩაწერ, რომ ეკრანზე გამოჩნდეს. რჩება სამი გულწრფელი ვარიანტი.

  1. restart მხოლოდ მაშინ, როცა არავინაა. პატარა ჯგუფისთვის ეს საუკეთესო პასუხია. ცარიელ საათზე restart გაფრთხილებას საერთოდ არ საჭიროებს.
  2. გააფრთხილე Discord-ით. უმეტეს ჯგუფს უკვე აქვს არხი. სკრიპტი Discord webhook-ზე წერს, ელოდება და შემდეგ აკეთებს restart-ს.
  3. გამოიყენე მოდი. Server Devcommands broadcast ბრძანებას ამატებს, მაგრამ მას დაკავშირებული ადმინი აკრეფს და არა cron უშვებს. არსებობს სერვერის მხარის გამცხადებელი მოდები; შეამოწმე, რომ შენს არჩეულს თამაშის მიმდინარე ვერსიისთვის ამუშავებენ.

Discord-ის გზა shell-ის ათეული ხაზია:

/usr/local/bin/valheim-restart.sh
#!/usr/bin/env bashset -euo pipefailWEBHOOK="https://discord.com/api/webhooks/REPLACE/ME"say() {  curl -fsS -H "Content-Type: application/json" \    -d "{\"content\":\"$1\"}" "$WEBHOOK" >/dev/null || true}say "Valheim restarts in 10 minutes. Find a safe spot."sleep 540say "Valheim restarts in 1 minute."sleep 60systemctl restart valheimsay "Valheim is restarting. Back in about two minutes."

cron-ის ხაზი systemctl-ის ნაცვლად სკრიპტზე მიუთითე. || true Discord-ის გაუმართაობას restart-ის გაუქმებისგან იცავს. webhook URL-ს პაროლივით მოეპყარი: ვისაც აქვს, არხში დაწერა შეუძლია. Discord webhooks for server status განმარტავს შექმნასა და შეტყობინებების ფორმატირებას.

restart-ის გამოტოვება, როცა ხალხი თამაშობს

შეგიძლია შეამოწმო, ვინმე ონლაინაა თუ არა, და თუ ასეა, restart გამოტოვო. სერვერი Steam-ის მოთხოვნებზე თამაშის პორტს პლუს ერთზე პასუხობს (ნაგულისხმევად 2457), python-a2s ბიბლიოთეკა კი მოთამაშეების რაოდენობას კითხულობს:

bash
$ pip install python-a2s$ python3 -c 'import a2s,sys; sys.exit(1 if a2s.info(("127.0.0.1",2457)).player_count else 0)' \    && systemctl restart valheim

ბრძანება არანულოვანი კოდით გადის, როცა მოთამაშეები დაკავშირებულნი არიან, ამიტომ restart მხოლოდ ცარიელ სერვერზე სრულდება. ჯერ შენს სერვერზე გამოსცადე მოთხოვნა - თუ დრო ამოიწურება, restart არასდროს მოხდება, რაც უსაფრთხო, მაგრამ უხმო გაუმართაობაა. Valheim-ის სერვერის მონიტორინგი და მოთამაშეების რაოდენობა მოთხოვნას დეტალურად განმარტავს, მათ შორის როცა ის არ პასუხობს.

განახლება restart-ისას და როცა არა#

restart განახლების ბუნებრივი მომენტია. systemd დაყენებაზე SteamCMD-ის განახლება წინასწარი გაშვების ნაბიჯად დაამატე, რომ ყოველი გაშვება მას ასრულებდეს:

valheim.service (update on every start)
[Service]ExecStartPre=/usr/games/steamcmd +force_install_dir /home/valheim/server \  +login anonymous +app_update 896660 validate +quitTimeoutStartSec=600

steamcmd-ის გზა იმაზეა დამოკიდებული, როგორ დაყენდა - /usr/games/steamcmd ის ადგილია, სადაც Ubuntu-სა და Debian-ის პაკეტი დებს; ხელით დაყენებული იქ ცხოვრობს, სადაც გახსენი. გაზარდე TimeoutStartSec, რომ ნელი ჩამოტვირთვა წარუმატებელ გაშვებად არ ჩაითვალოს. როცა ახალი build არ არის, ნაბიჯს რამდენიმე წამი სჭირდება.

ვანილის სერვერისთვის ეს სწორი ნაგულისხმევია. პატჩის შემდეგ მოთამაშეები თამაშს ანახლებენ და სერვერს უკვე შესაბამისს პოულობენ. ალტერნატივაა "Incompatible version" შეცდომა და ვიღაცა შუაღამეს გწერს - იხილე Valheim სერვერის განახლება, როგორ მუშაობს ვერსიის შემოწმება.

მოდიფიცირებული სერვერისთვის ეს ყოველთვის არასწორი ნაგულისხმევია. თამაშის განახლება BepInEx plugin-ებს ამტვრევს, სანამ მათი ავტორები არ დაეწევიან, ზოგჯერ დღეებით. სერვერი, რომელიც დილის restart-ზე თავისით ახლდება, ყველას crash-ით გაშვებისას ან შეუსაბამობის გამო გამოგდებების კედლით ხვდება. წინასწარი გაშვების ნაბიჯი ამოიღე, განაახლე ხელით, როცა შენი მოდები განახლდება, და ჯერ backup გააკეთე. დაგეგმილი restart დატოვე; უბრალოდ განახლება მისგან განაცალკევე.

lloesche/valheim-server Docker image-ში იგივე გაყოფა ორი ცვლადია: RESTART_CRON (ნაგულისხმევად ყოველდღე 05:00-ზე) და UPDATE_CRON (ნაგულისხმევად ყოველ 15 წუთში), თითოეულს აქვს _IF_IDLE გადამრთველი, რომელიც მოქმედებას აჩერებს, სანამ მოთამაშეები დაკავშირებულნი არიან. მოდიფიცირებული კონტეინერისთვის UPDATE_CRON ცარიელ მნიშვნელობაზე დააყენე და RESTART_CRON დატოვე. Valheim in Docker სრულ ცხრილს შეიცავს.

restart-ები და backup-ები ერთად#

თანმიმდევრობას მნიშვნელობა აქვს. backup დისკზე არსებულ ფაილებს აკოპირებს, ეს ფაილები კი ისეთივე ახალია, როგორც ბოლო შენახვა. თუ ჯერ backup-ს აკეთებ და მერე restart-ს, backup შეიძლება შენახვის სრული ინტერვალით ძველი იყოს. თუ ჯერ restart-ს აკეთებ, სუფთა გაჩერება სამყაროს წერს და რამდენიმე წუთის შემდეგ გაკეთებული backup restart-მდე ყველაფერს შეიცავს.

თანმიმდევრობა, რომელიც მუშაობს:

  1. გააფრთხილე მოთამაშეები (თუ ვინმე შეიძლება ონლაინ იყოს).
  2. გააკეთე restart, რომელიც გამორთვისას ინახავს.
  3. დაელოდე, სანამ სერვერი სრულად ისევ ზევით არ იქნება - დიდი სამყაროსთვის ორიდან ხუთ წუთამდე.
  4. გააკეთე backup, შემდეგ დააკოპირე მანქანიდან გარეთ.

backup restart-ის იმავე წუთზე ნუ დაგეგმავ. ასლმა, რომელიც სერვერის ბოლო შენახვის ჩაწერისას გაკეთდა, შეიძლება შეკვეცილი .db აიღოს, ეს კი ზუსტად ის ფაილია, რომელსაც კატასტროფის შემდეგ მოეჭიდები. Valheim-ის საკუთარი -backups როტაცია ჩანაცვლება არ არის: ის იმავე საქაღალდეში, იმავე დისკზეა. Valheim-ის სერვერის backup-ები და სამყაროს დაზიანება აღდგენასა და დაზიანებული სამყაროს ამოცნობას განმარტავს.

პანელზე გაკეთება#

მართულ პანელზე cron ხაზებს ან unit-ებს არ წერ; იგივე სამშენებლო ბლოკები გრაფიკის ამოცანებია. RE:NODE-ზე Schedules ჩანართი იღებს cron გამოსახულებას და ამოცანების დალაგებულ სიას მათ შორის დაყოვნებებით, თითოეული ამოცანა კი კონსოლის ბრძანება, backup ან კვების მოქმედებაა. ყოველდღიური restart ახალი backup-ით ორი ამოცანაა:

რიგიამოცანადაყოვნება მასამდედანიშნულება
1Power action: restart-სუფთა გაჩერება სამყაროს ინახავს, შემდეგ გაშვება
2Backup5 წუთიიღებს სამყაროს, როგორც ახლახან შეინახა

Restart power action სუფთა გაჩერებას აგზავნის, ამიტომ სამყარო სერვერის გამორთვამდე ინახება, backup-ები კი იმ მანქანის გარეთ ინახება, რომელსაც იცავენ. კონსოლის ბრძანების ამოცანა ვანილის Valheim-ზე გაფრთხილებისთვის უსარგებლოა, რადგან სერვერი კონსოლის შეყვანას არ კითხულობს; გაფრთხილება Discord-იდან გამოაქვეყნე ან restart ცარიელი საათისთვის დაგეგმე. crash watcher, რომელიც განმეორებით restart-ებზე აფრთხილებს, შენს მიერ მოთხოვნილ restart-ებს არ ითვლის, ამიტომ ყოველდღიური გრაფიკი მას არ ამოქმედებს. გზამკვლევების schedules განყოფილება აჩვენებს, სად არის თითოეული ველი.

ერთს, რასაც პანელის გრაფიკი ვერ ხედავს, ის არის, მოთამაშეები ონლაინ არიან თუ არა. თუ ეს მნიშვნელოვანია, საათი ყურადღებით აირჩიე ან გამოიყენე სერვერის მხარის მოდი, რომელიც restart-ს აყოვნებს, სანამ ხალხი თამაშობს.

როცა დაგეგმილი restart ცუდად მიდის#

restart-ის შემდეგ სამყარო უკან დაბრუნდა. გაჩერება მოკვლა იყო და არა შეწყვეტა. შეამოწმე ლოგში World saved გამორთვამდე. systemd-ზე დააყენე KillSignal=SIGINT და გაზარდე TimeoutStopSec. Docker-ში დააყენე stop_grace_period წუთზე ან ორზე.

სერვერი უკან არ დაბრუნდა. შეხედე გაშვების ლოგს და არა გამორთვისას. დაგეგმილი restart-ის შემდეგ ჩვეულებრივი მიზეზებია განახლება, რომელმაც მოდი გატეხა, SteamCMD-ის ჩამოტვირთვა, რომელიც შუაში ჩავარდა, ან სამყარო, რომელსაც ჩასატვირთად ლიმიტზე მეტი მეხსიერება სჭირდება. Valheim სერვერი გაშვებისას crash-ობს შეცდომებს ჩამოთვლის.

restart არასწორ საათზე გაეშვა. დროის სარტყელი. შეადარე მანქანაზე date იმას, რასაც ელოდი, და გახსოვდეს, რომ კონტეინერები ხშირად UTC-ზე მუშაობენ.

მოთამაშეებმა პატჩის შემდეგ დილით "Incompatible version" მიიღეს. სერვერი განახლდა და მათი კლიენტები ჯერ არა - ან პირიქით, თუ განახლების ნაბიჯი ამოიღე. უთხარი ჯგუფს, განაახლონ და Steam გადატვირთონ.

კონსოლის მოთამაშეები ვეღარ უერთდებიან. შესვლის კოდი შეიცვალა. გამოაქვეყნე ახალი; crossplay-ის გზამკვლევი განმარტავს, სად ჩნდება.

FAQ#

ინახავს restart Valheim-ის სამყაროს?

მხოლოდ სუფთა გაჩერება. სერვერი სამყაროს წერს, როცა შეწყვეტის სიგნალს იღებს, როგორსაც პანელზე ჩვეულებრივი გაჩერება ან systemctl stop KillSignal=SIGINT-ით აგზავნის. იძულებითი kill, out-of-memory გაჩერება ან დენის გათიშვა ბოლო დროული შენახვის შემდეგ ყველაფერს კარგავს.

შემიძლია გაფრთხილების შეტყობინების გაგზავნა სერვერის კონსოლიდან?

ვანილის Valheim-ზე - არა. dedicated server-ს კონსოლის შეყვანა და broadcast ბრძანება არ აქვს. გამოიყენე Discord-ის შეტყობინება restart-მდე, მოდი, რომელიც სერვერის განცხადებებს ამატებს, ან restart-ის დრო, როცა ონლაინ არავინაა.

რამდენ ხანს გრძელდება Valheim-ის restart?

ჩვეულებრივ ერთიდან სამ წუთამდე: შენახვა გამორთვისას, შემდეგ სამყაროს ჩატვირთვა. დიდ, მძიმედ აშენებულ სამყაროებს ნელ დისკებზე მეტი სჭირდებათ, განახლების შემოწმება კი ჩამოტვირთვისთვის საჭირო დროს ამატებს.

უნდა განახლდეს მოდიფიცირებული სერვერი restart-ისას თავისით?

არა. თამაშის პატჩები BepInEx მოდებს ამტვრევენ, სანამ ისინი არ განახლდება, ავტომატური განახლება კი ჩვეულებრივ restart-ს სერვერად აქცევს, რომელიც არ იწყება. გადატვირთე გრაფიკით, განაახლე ხელით, როცა შენი მოდები ახალ ვერსიას უჭერენ მხარს.

ყოველდღიური restart-ები რამეს ცვდება ან პროგრესს ხარჯავს?

არა. სუფთა restart არავის არაფერს ახარჯვინებს ერთი-ორი წუთის გაჩერების გარდა. პროგრესი მხოლოდ მაშინ იკარგება, თუ გაჩერება სუფთა არ არის, ამიტომ სიგნალისა და timeout-ის პარამეტრები გრაფიკზე მნიშვნელოვანია.