Puncte:0

Cum programez ca o acțiune să aibă loc în 5 secunde?

drapel by

Sunt într-o situație în care este necesară repornirea serverului SSHD de-a lungul tuturor proceselor de conectare deschise. Așa că m-am gândit că aș putea folosi cron sau la comenzi pentru a programa o repornire a serviciului în câteva secunde în viitor (... și opriți procesul acum). Problema este că ambele programatoare nu sunt create pentru programe de câteva secunde. De exemplu: acum + 1 minut este o comandă legitimă în timp ce: acum + 5 secunde nu este o intrare viabilă. Ai idee cum să rezolv asta?

FedKad avatar
drapel cn
Nu cred că aceste comenzi acceptă granularitatea mai puțin de un minut. Puteți scrie propriul script: folosind o buclă cu un „sleep” între ele.
muru avatar
drapel us
„(... și omorâți procesul acum)” care proces?
rubmz avatar
drapel by
@muru - "(... și omorâți procesul acum)" - rulez: "kill -1 sshd" (omoarează toate procesele sshd și termină orice posibilitate de reconectare până când SSHD-ul este repornit.
rubmz avatar
drapel by
@FedonKadifeli problema este că scriptul care rulează trebuie să fie oprit din alt proces/proces părinte decât SSHD, care este modul în care rulez scripturile pe server. În caz contrar, uciderea procesului sshd va termina și acel script.
muru avatar
drapel us
@rubmz dacă faceți asta, `systemd` ar trebui să repornească automat SSH.
rubmz avatar
drapel by
@muru Nu s-a întâmplat așa cum era de așteptat data trecută nici pentru: 1. starea serviciului a fost în sus în timp ce procesul a fost încheiat, 2. sistemul durează prea mult pentru a identifica procesul închis/serviciul oprit sau prea mult pentru a-l reporni (ar trebui să se întâmple cât mai repede posibil, iar pentru cel puțin un minut a fost oprit) 3. cumva serviciul nu este configurat pentru monitorizare/repornire automată.
muru avatar
drapel us
Nici unul dintre acestea nu pare foarte probabil.Ce versiune de Ubuntu este aceasta? Ai modificat serviciul ssh? Ce arată `systemctl status ssh.service`?
danzel avatar
drapel cn
Nu poți pur și simplu „systemctl restart ssh”?
rubmz avatar
drapel by
@muru Acesta este Ubuntu 18. Tocmai mi-am oprit serviciul sshd din nou și se pare că nu mă pot reconecta... Am verificat fișierul init systemd și i-am schimbat parametrul de repornire din „Restart=on-failure” în „ Restart=intotdeauna". Restul parametrilor păreau destul de standard (este o mașină AWS...)
rubmz avatar
drapel by
Serviciul @danzel sshd își menține procesele în mod intenționat la repornire. În acest fel, deoarece este mai ușor să păstrați deschise conexiunile deschise. Problema este că uneori trebuie să resetați greu una dintre conexiuni (care în cazul nostru nu se distinge prea mult despre ce proces sshd este...)
Puncte:3
drapel cn

Răspunzând la întrebarea inițială:

În loc să programați un job să ruleze în câteva secunde, îl puteți programa să ruleze acum și întârzie execuția la începutul lucrării. De exemplu:

echo "sleep 5; wall Job executat" | acum

Rețineți că lapagina de manual a lui spune despre acum:

Indică ziua și ora curente. Invocând la acum trebuie trimiteți un job la locul de muncă pentru execuție potențial imediată (adică este, supusă numai întârzierilor de programare nespecificate).

Deci este posibil ca acum nu va executa imediat lucrarea, dar cel puțin la instalarea mea 18.04 o face.

rubmz avatar
drapel by
Răspuns frumos și util! Așa că l-am marcat ca fiind corect.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.