608 lines
No EOL
101 KiB
HTML
608 lines
No EOL
101 KiB
HTML
<!DOCTYPE html> <html class="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-language-alert-in-sidebar-enabled vector-feature-sticky-header-disabled vector-feature-page-tools-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-enabled vector-feature-main-menu-pinned-disabled vector-feature-limited-width-enabled vector-feature-limited-width-content-enabled vector-animations-ready ve-not-available" lang=en dir=ltr style><!--
|
||
Page saved with SingleFile
|
||
url: https://wiki.archlinux.org/title/Systemd/Timers
|
||
saved date: Tue Dec 05 2023 17:35:01 GMT+0100 (Central European Standard Time)
|
||
--><meta charset=utf-8>
|
||
<title>systemd/Timers - ArchWiki</title>
|
||
<style>:root{--sf-img-8: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDEyIDEyIj4KCTxwYXRoIGZpbGw9IiMyMDIxMjIiIGQ9Im0xMS4wNSAzLjk5Ni0uOTY1LTEuMDUzLTQuMDM1IDMuODYtMy45NDctMy44NkwxLjA1IDMuOTk2bDUgNSA1LTUiLz4KPC9zdmc+Cg==")}@media screen{html{height:100%}.ext-darkmode-link::before{content:"☾";display:inline-block}.skin-vector-2022 .ext-darkmode-link::before{display:none}}@-moz-document url-prefix(){body{background:#000}}@-moz-document url-prefix(){@supports (overflow-clip-margin:1px){body{background:#fff}}}.mw-ui-button{display:inline-block;box-sizing:border-box;margin:0;border:1px solid #a2a9b1;border-radius:2px;cursor:pointer;vertical-align:middle;font-family:inherit;font-size:1em;font-weight:bold;line-height:1.28571429em;text-align:center;-webkit-appearance:none}.mw-ui-button:not(.mw-ui-icon-element){min-height:32px;min-width:4em;max-width:28.75em;padding:5px 12px}.mw-ui-button:not(:disabled){transition-property:background-color,color,border-color,box-shadow;transition-duration:100ms}.mw-ui-button:not(:disabled):visited{color:#202122}.mw-ui-button:not(:disabled):hover{background-color:#ffffff;color:#404244;border-color:#a2a9b1}.mw-ui-button:not(:disabled):focus{color:#202122;border-color:#3366cc;box-shadow:inset 0 0 0 1px #3366cc,inset 0 0 0 2px #ffffff;outline-width:0}.mw-ui-button:not(:disabled):focus::-moz-focus-inner{border-color:transparent;padding:0}.mw-ui-button:not(:disabled):active,.mw-ui-button:not(:disabled).is-on{background-color:#c8ccd1;color:#000000;border-color:#72777d;box-shadow:none}.mw-ui-button:disabled{background-color:#c8ccd1;color:#ffffff;border-color:#c8ccd1;cursor:default}input[type="checkbox"]:hover+.mw-ui-button,.mw-ui-button:hover{background-color:#ffffff;color:#404244;border-color:#a2a9b1}input[type="checkbox"]:focus+.mw-ui-button,.mw-ui-button:focus{color:#202122;border-color:#3366cc;box-shadow:inset 0 0 0 1px #3366cc,inset 0 0 0 2px #ffffff;outline-width:0}input[type="checkbox"]:active+.mw-ui-button,.mw-ui-button:active{background-color:#c8ccd1;color:#000000;border-color:#72777d;box-shadow:none}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop){color:transparent!important}.mw-ui-button.mw-ui-icon-element:not(.mw-ui-icon-with-label-desktop) span:not(.mw-ui-icon){display:block;position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}@media all and (max-width:1000px){.mw-ui-button.mw-ui-icon-element span:not(.mw-ui-icon){display:block;position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}}.mw-ui-button.mw-ui-quiet,.mw-ui-button.mw-ui-quiet.mw-ui-progressive{background-color:transparent;color:#202122;border-color:transparent;font-weight:bold}.mw-ui-button.mw-ui-quiet:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-progressive:not(.mw-ui-icon-element),.mw-ui-button.mw-ui-quiet.mw-ui-destructive:not(.mw-ui-icon-element){min-height:32px}input[type="checkbox"]:hover+.mw-ui-button.mw-ui-quiet,input[type="checkbox"]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type="checkbox"]:hover+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:hover{background-color:rgba(0,24,73,0.02745098);color:#202122;border-color:transparent}input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet,input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type="checkbox"]:focus+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:focus,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:focus,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:focus{color:#202122;border-color:#3366cc;box-shadow:inset 0 0 0 1px #3366cc,inset 0 0 0 2px #ffffff}input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet,input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet.mw-ui-progressive,input[type="checkbox"]:active+.mw-ui-button.mw-ui-quiet.mw-ui-destructive,.mw-ui-button.mw-ui-quiet:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:active{background-color:rgba(0,36,73,0.08235294);color:#000000;border-color:#72777d;box-shadow:none}.mw-ui-button.mw-ui-quiet:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled,.mw-ui-button.mw-ui-quiet:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:hover,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:hover,.mw-ui-button.mw-ui-quiet:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-progressive:disabled:active,.mw-ui-button.mw-ui-quiet.mw-ui-destructive:disabled:active{background-color:transparent;color:#72777d;border-color:transparent}.mw-ui-button.mw-ui-progressive:not(:disabled){background-color:#3366cc;color:#fff;border-color:#3366cc}.mw-ui-button.mw-ui-progressive:not(:disabled):hover{background-color:#447ff5;border-color:#447ff5}.mw-ui-button.mw-ui-progressive:not(:disabled):focus{box-shadow:inset 0 0 0 1px #3366cc,inset 0 0 0 2px #ffffff}.mw-ui-button.mw-ui-progressive:not(:disabled):active,.mw-ui-button.mw-ui-progressive:not(:disabled).is-on{background-color:#2a4b8d;border-color:#2a4b8d;box-shadow:none}.mw-ui-button.mw-ui-progressive:disabled{background-color:#c8ccd1;color:#fff;border-color:#c8ccd1}.mw-ui-button.mw-ui-progressive.mw-ui-quiet{color:#3366cc;background-color:transparent;border-color:transparent}input[type="checkbox"]:hover+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:hover{background-color:rgba(52,123,255,0.2);border-color:transparent;color:#447ff5}input[type="checkbox"]:focus+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:focus{color:#3366cc;border-color:#3366cc}input[type="checkbox"]:active+.mw-ui-button.mw-ui-progressive.mw-ui-quiet,.mw-ui-button.mw-ui-progressive.mw-ui-quiet:active{color:#ffffff;background-color:#2a4b8d;border-color:#2a4b8d}.mw-ui-icon{font-size:initial;position:relative;display:inline-block;box-sizing:content-box!important;width:1.25em;height:1.25em;min-width:1.25em;min-height:1.25em;flex-basis:1.25em;vertical-align:middle;line-height:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-moz-appearance:none;-webkit-appearance:none;background-color:transparent;margin:0;padding:0}.mw-ui-icon:not(.mw-ui-button){border:0}.mw-ui-icon:before{content:"";display:block;width:100%;height:100%;min-width:1.25em;min-height:1.25em;background-repeat:no-repeat;background-size:1.25em 1.25em;background-position:center}.mw-ui-icon+span:not(:empty){margin-left:6px}.mw-ui-icon-flush-left{margin-left:-0.75em}@media all and (min-width:1000px){.mw-ui-icon-flush-left{margin-left:-0.375em}}.mw-ui-icon-flush-right{margin-right:-0.75em}@media all and (min-width:1000px){.mw-ui-icon-flush-right{margin-right:-0.375em}}.mw-ui-icon-element{border-radius:2px;line-height:0;transition:background-color 100ms;color:transparent}.mw-ui-icon-element.mw-ui-button{padding:0.6875em}.mw-ui-icon-element:focus,.mw-ui-icon-element:active,.mw-ui-icon-element:visited{color:transparent}@media (min-width:1000px){.mw-ui-icon-element.mw-ui-button{padding:0.3125em}}.mw-ui-icon-small{width:1em;height:1em;min-width:1em;min-height:1em;flex-basis:1em;line-height:1em}.mw-ui-icon-small:before{content:"";display:block;width:100%;height:100%;min-width:1em;min-height:1em;background-repeat:no-repeat;background-size:1em 1em;background-position:center}@media all and (min-width:1000px){}.mw-ui-icon-wikimedia-language-progressive:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+CgkJbGFuZ3VhZ2UKCTwvdGl0bGU+PGcgZmlsbD0iIzM2YyI+PHBhdGggZD0iTTIwIDE4aC0xLjQ0YS42MS42MSAwIDAgMS0uNC0uMTIuODEuODEgMCAwIDEtLjIzLS4zMUwxNyAxNWgtNWwtMSAyLjU0YS43Ny43NyAwIDAgMS0uMjIuMy41OS41OSAwIDAgMS0uNC4xNEg5bDQuNTUtMTEuNDdoMS44OXptLTMuNTMtNC4zMUwxNC44OSA5LjVhMTEuNjIgMTEuNjIgMCAwIDEtLjM5LTEuMjRxLS4wOS4zNy0uMTkuNjlsLS4xOS41Ni0xLjU4IDQuMTl6bS02LjMtMS41OGExMy40MyAxMy40MyAwIDAgMS0yLjkxLTEuNDEgMTEuNDYgMTEuNDYgMCAwIDAgMi44MS01LjM3SDEyVjRINy4zMWE0IDQgMCAwIDAtLjItLjU2QzYuODcgMi43OSA2LjYgMiA2LjYgMmwtMS40Ny41cy40Ljg5LjYgMS41SDB2MS4zM2gyLjE1QTExLjIzIDExLjIzIDAgMCAwIDUgMTAuN2ExNy4xOSAxNy4xOSAwIDAgMS01IDIuMXEuNTYuODIuODcgMS4zOGEyMy4yOCAyMy4yOCAwIDAgMCA1LjIyLTIuNTEgMTUuNjQgMTUuNjQgMCAwIDAgMy41NiAxLjc3ek0zLjYzIDUuMzNoNC45MWE4LjExIDguMTEgMCAwIDEtMi40NSA0LjQ1IDkuMTEgOS4xMSAwIDAgMS0yLjQ2LTQuNDV6Ii8+PC9nPjwvc3ZnPgo=)}.mw-ui-icon-wikimedia-ellipsis:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+CgkJZWxsaXBzaXMKCTwvdGl0bGU+PGcgZmlsbD0iIzAwMCI+PGNpcmNsZSBjeD0iMTAiIGN5PSIxMCIgcj0iMiIvPjxjaXJjbGUgY3g9IjMiIGN5PSIxMCIgcj0iMiIvPjxjaXJjbGUgY3g9IjE3IiBjeT0iMTAiIHI9IjIiLz48L2c+PC9zdmc+Cg==)}.mw-ui-icon-wikimedia-expand:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj48dGl0bGU+CgkJZXhwYW5kCgk8L3RpdGxlPjxnIGZpbGw9IiMwMDAiPjxwYXRoIGQ9Im0xNy41IDQuNzUtNy41IDcuNS03LjUtNy41TDEgNi4yNWw5IDkgOS05eiIvPjwvZz48L3N2Zz4K)}@media (prefers-reduced-motion:reduce){*,::before,::after{animation-delay:-0.01ms!important;animation-duration:0.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:0ms!important}}body{margin:0}main{display:block}@supports (text-decoration:underline dotted){abbr[title]{border-bottom:0;text-decoration:underline dotted}}pre{font-family:monospace,monospace}sup{line-height:1}img{border:0}button,input{margin:0}button::-moz-focus-inner,[type="button"]::-moz-focus-inner,[type="reset"]::-moz-focus-inner,[type="submit"]::-moz-focus-inner{border-style:none;padding:0}@media screen{html,body{height:100%}:focus{outline-color:#3366cc}html{font-size:100%}html,body{font-family:sans-serif}ul{list-style-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1IiBoZWlnaHQ9IjEzIj4KCTxjaXJjbGUgY3g9IjIuNSIgY3k9IjkiIHI9IjIuNSIgZmlsbD0iIzIwMjEyMiIvPgo8L3N2Zz4K)}pre{line-height:1.3}.mw-jump-link:not(:focus){display:block;position:absolute!important;clip:rect(1px,1px,1px,1px);width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden}.mw-body h1,.mw-body-content h2{margin-bottom:0.25em;padding:0;font-family:"Linux Libertine","Georgia","Times",serif;line-height:1.3}.mw-body h1:lang(ja),.mw-body-content h1:lang(ja),.mw-body-content h2:lang(ja),.mw-body h1:lang(he),.mw-body-content h1:lang(he),.mw-body-content h2:lang(he),.mw-body h1:lang(ko),.mw-body-content h1:lang(ko),.mw-body-content h2:lang(ko){font-family:sans-serif}.mw-body h1:lang(ckb),.mw-body-content h1:lang(ckb),.mw-body-content h2:lang(ckb){font-family:"Scheherazade","Linux Libertine","Georgia","Times",serif}.mw-body h1:lang(my),.mw-body-content h1:lang(my),.mw-body-content h2:lang(my){line-height:normal}.mw-body h1{font-size:1.8em}.vector-body{font-size:calc(1em*0.875);line-height:1.6}.vector-body h2{margin-top:1em;font-size:1.5em}.vector-body h3{margin-top:0.3em;margin-bottom:0;padding-bottom:0;line-height:1.6}.vector-body h3{font-size:1.2em}.vector-body h3{font-weight:bold}.vector-body p{margin:0.5em 0}.mw-parser-output a{word-wrap:break-word}.mw-parser-output a.external{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDEyIDEyIj4KCTx0aXRsZT4KCQlleHRlcm5hbCBsaW5rCgk8L3RpdGxlPgoJPHBhdGggZmlsbD0iIzM2YyIgZD0iTTYgMWg1djVMOC44NiAzLjg1IDQuNyA4IDQgNy4zbDQuMTUtNC4xNkw2IDFaIE0yIDNoMnYxSDJ2Nmg2VjhoMXYyYTEgMSAwIDAgMS0xIDFIMmExIDEgMCAwIDEtMS0xVjRhMSAxIDAgMCAxIDEtMVoiLz4KPC9zdmc+Cg==);background-position:center right;background-repeat:no-repeat;background-size:0.857em;padding-right:1em}.mw-parser-output a.external.free{word-break:break-all}.mw-indicators{font-size:0.875em;line-height:1.6;position:relative;float:right}#siteNotice{font-size:0.8em;margin:24px 0;position:relative;text-align:center}.vector-menu-dropdown{position:relative}.vector-menu-dropdown>.vector-menu-content{position:absolute;top:100%;left:-1px;opacity:0;height:0;visibility:hidden;overflow:hidden;margin:0;padding:0;z-index:3}.vector-menu-dropdown .mw-list-item{padding:0;margin:0}.vector-menu-dropdown .mw-list-item a{cursor:pointer}.vector-menu-checkbox{cursor:pointer;position:absolute;top:0;left:0;z-index:1;opacity:0;width:100%;height:100%;margin:0;padding:0;display:none}.vector-menu-checkbox:checked~.vector-menu-content{opacity:1;visibility:visible;height:auto}:not(:checked)>.vector-menu-checkbox{display:block}.vector-menu-checkbox:focus+.vector-menu-heading{outline:dotted 1px;outline:auto -webkit-focus-ring-color}.vector-search-box-inner{position:relative;height:100%}.vector-search-box-input{background-color:rgba(255,255,255,0.5);color:#000000;width:100%;height:2.15384615em;box-sizing:border-box;border:1px solid #a2a9b1;border-radius:2px;padding:5px 2.15384615em 5px 0.4em;box-shadow:inset 0 0 0 1px transparent;font-family:inherit;font-size:0.8125em;direction:ltr;transition-property:border-color,box-shadow;transition-duration:250ms;-webkit-appearance:none;-moz-appearance:textfield}.vector-search-box-inner:hover .vector-search-box-input{border-color:#72777d}.vector-search-box-input:focus,.vector-search-box-inner:hover .vector-search-box-input:focus{outline:0;border-color:#3366cc;box-shadow:inset 0 0 0 1px #3366cc}.vector-search-box-input::-webkit-input-placeholder{color:#72777d;opacity:1}.vector-search-box-input::-moz-placeholder{color:#72777d;opacity:1}.vector-search-box-input::placeholder{color:#72777d;opacity:1}.vector-search-box-input::-webkit-search-decoration,.vector-search-box-input::-webkit-search-cancel-button,.vector-search-box-input::-webkit-search-results-button,.vector-search-box-input::-webkit-search-results-decoration{display:none}.searchButton{background-color:transparent;position:absolute;top:1px;bottom:1px;right:1px;min-width:28px;width:2.15384615em;border:0;padding:0;cursor:pointer;font-size:0.8125em;direction:ltr;text-indent:-99999px;white-space:nowrap;overflow:hidden;z-index:1}.searchButton[name="go"]{background:no-repeat center/1.23076923em url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTx0aXRsZT4KCQlzZWFyY2gKCTwvdGl0bGU+Cgk8cGF0aCBkPSJNMTIuMiAxMy42YTcgNyAwIDEgMSAxLjQtMS40bDUuNCA1LjQtMS40IDEuNHpNMyA4YTUgNSAwIDEgMCAxMCAwQTUgNSAwIDAgMCAzIDh6Ii8+Cjwvc3ZnPgo=);opacity:0.67}.vector-search-box-collapses>div{display:none}.mw-footer{direction:ltr}.mw-footer ul{list-style:none;margin:0;padding:0}.mw-footer li{color:#202122;margin:0;padding:0.5em 0;font-size:0.75em}#footer-info li{line-height:1.4}#footer-places li{float:left;margin-right:1em;line-height:2}}@media screen and (min-width:1000px){}@media screen and (min-width:1000px){.vector-search-box-collapses>div{display:block}}@media screen{html{scroll-padding-top:75px}body{background-color:#f8f9fa;color:#202122;overflow-y:scroll}.mw-body{direction:ltr}.mw-body{padding:0.5em 0 1.5em}.mw-body .firstHeading{word-wrap:break-word;margin-bottom:0}.mw-header{position:relative;z-index:4}.mw-body-content{margin-top:16px}.mw-body,.mw-footer{margin-left:0}.mw-indicators{z-index:1}.vector-page-titlebar:after{clear:both;content:"";display:block}.vector-body-before-content{overflow:hidden}.mw-body .mw-portlet-lang{float:right}.vector-body{position:relative;z-index:0}#contentSub:not(:empty),#contentSub2{font-size:84%;line-height:1.2em;color:#54595d;width:auto;margin:8px 0 0}.mw-page-container{position:relative;z-index:0;max-width:99.75em;min-height:100%;margin-left:auto;margin-right:auto;padding:0.05px 1.5em;background-color:#ffffff;box-sizing:border-box}.skin--responsive .mw-page-container{min-width:auto}.vector-feature-page-tools-disabled #vector-toc-pinned-container .vector-toc:after,.vector-feature-page-tools-disabled #vector-toc-pinned-container .vector-toc{width:220px}.vector-feature-page-tools-disabled .mw-content-container,.vector-feature-page-tools-disabled .mw-table-of-contents-container{max-width:60em}.mw-table-of-contents-container{align-self:start;height:100%}@keyframes search-loader-progress-bar{0%{background-size:0 2px;background-position:-10%0}30%{background-size:30% 2px;background-position:-10%0}70%{background-size:30% 2px;background-position:110%0}100%{background-size:0 2px;background-position:110%0}}.vector-search-box{font-size:calc(1em*0.875);flex-grow:1}.vector-search-box-vue .vector-search-box-input,.vector-search-box-vue .searchButton{font-size:inherit}.vector-search-box-vue .vector-search-box-input{height:auto;min-height:32px;line-height:1.4285714;padding-top:4px;padding-bottom:4px}.client-js .vector-search-box-vue .vector-search-box-input{padding-left:36px;padding-right:8px}.client-js .vector-search-box-vue .searchButton{pointer-events:none;right:auto;top:0;bottom:0;width:36px;opacity:0.51;background-size:1.42857143em auto;background-position-x:8px}.client-js .vector-search-box-vue .vector-search-box-input:focus~.searchButton{opacity:0.87}.client-js .vector-search-box-vue.vector-search-box-show-thumbnail>div{max-width:37.42857143em}.client-js .vector-search-box-vue.vector-search-box-show-thumbnail.vector-search-box-auto-expand-width .searchButton{left:25px}.client-js .vector-search-box-vue.vector-search-box-show-thumbnail.vector-search-box-auto-expand-width .vector-search-box-input{margin-left:24px;width:calc(100% - 24px)}.vector-page-titlebar .mw-portlet-lang{margin-top:2px;box-sizing:border-box;height:2em;flex-shrink:0}.vector-page-titlebar .mw-portlet-lang .vector-menu-heading{user-select:none;opacity:1}.vector-page-titlebar .mw-portlet-lang .vector-menu-heading .vector-menu-heading-label{font-size:0.875em}.vector-page-titlebar .mw-portlet-lang .vector-menu-heading.mw-ui-progressive.mw-ui-quiet .mw-ui-icon:before{opacity:1}.vector-page-titlebar .mw-portlet-lang .vector-menu-heading.mw-ui-progressive.mw-ui-quiet:after{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDEyIDEyIj4KCTxwYXRoIGZpbGw9IiMzNmMiIGQ9Im0xMS4wNSAzLjk5Ni0uOTY1LTEuMDUzLTQuMDM1IDMuODYtMy45NDctMy44NkwxLjA1IDMuOTk2bDUgNSA1LTUiLz4KPC9zdmc+Cg==);opacity:1}.vector-page-titlebar .mw-portlet-lang input:active+.vector-menu-heading.mw-ui-progressive.mw-ui-quiet .mw-ui-icon{filter:brightness(0) invert(1)}.vector-page-titlebar .mw-portlet-lang input:active+.vector-menu-heading.mw-ui-progressive.mw-ui-quiet:after{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgdmlld0JveD0iMCAwIDEyIDEyIj4KCTxwYXRoIGZpbGw9IiNmZmYiIGQ9Im0xMS4wNSAzLjk5Ni0uOTY1LTEuMDUzLTQuMDM1IDMuODYtMy45NDctMy44NkwxLjA1IDMuOTk2bDUgNSA1LTUiLz4KPC9zdmc+Cg==)}.mw-interlanguage-selector{display:flex}.mw-interlanguage-selector:after{content:"";background:var(--sf-img-8) 100% 50%no-repeat;width:1.23076923em;height:1.23076923em;margin-left:-1px}.vector-user-links{display:flex;align-items:center;position:relative;justify-content:flex-end;flex-shrink:1}.vector-user-links .mw-ui-button{display:flex;align-items:center}.vector-user-links .mw-list-item{margin:0}.vector-user-menu .vector-menu-content{left:auto;right:0}.vector-feature-page-tools-disabled .vector-user-menu .vector-menu-content{min-width:200px}.vector-user-links .mw-portlet-vector-user-menu-overflow{font-size:0.875em}.vector-user-links .mw-portlet-vector-user-menu-overflow .vector-menu-content-list{display:flex;align-items:center}.vector-user-links .mw-portlet-vector-user-menu-overflow a:not(.mw-ui-button):not(.mw-echo-notifications-badge){margin:0 8px}.mw-header{min-height:3.125em;padding:8px 0;display:flex;flex-wrap:nowrap;align-items:center}.mw-header .vector-header-start,.mw-header .vector-header-end{display:flex;align-items:center}.mw-header .vector-header-end{flex-grow:1}.mw-footer{border-top:1px solid #a2a9b1;padding:0.75em 0}.mw-footer-container{padding-top:50px;padding-bottom:82px}.vector-menu ul{list-style:none;margin:0}.vector-dropdown>.vector-menu-heading:not(.mw-ui-icon-element){display:flex}.vector-dropdown>.vector-menu-heading:not(.mw-ui-icon-element):after{content:"";background:var(--sf-img-8) 100% 50%no-repeat;width:1.23076923em;height:1.23076923em;margin-left:-1px}.vector-dropdown .vector-dropdown-content{background-color:#ffffff;border:1px solid #a2a9b1;box-shadow:0 1px 1px 0 rgba(0,0,0,0.1);transition-property:opacity;transition-duration:100ms}.vector-feature-page-tools-disabled .vector-dropdown .vector-dropdown-content{min-width:100%}.vector-dropdown-content .mw-list-item a{color:#3366cc}.vector-feature-page-tools-enabled .vector-pinnable-element .mw-list-item a:not(.mw-selflink):visited,.vector-dropdown-content .mw-list-item a:not(.mw-selflink):visited{color:#3366cc}.vector-feature-page-tools-enabled .vector-pinnable-element>*:not(:last-child),.vector-dropdown-content>*:not(:last-child){border-bottom:1px solid #eaecf0}.vector-dropdown .mw-list-item a{display:flex;align-items:center;font-size:0.875rem}.vector-dropdown .mw-list-item a:not(.mw-selflink):visited{color:#3366cc}.vector-dropdown .mw-list-item a:not(.mw-selflink){color:#3366cc}.vector-feature-page-tools-disabled .vector-dropdown .mw-list-item a{min-height:2rem;padding:0 12px}.vector-menu-tabs{float:left}.vector-menu-tabs .mw-list-item a{color:#3366cc}.vector-menu-tabs .mw-list-item.vector-tab-noicon a:focus,.vector-menu-tabs .mw-list-item.vector-tab-noicon a:hover{text-decoration:none;border-bottom:1px solid}.vector-menu-tabs .mw-list-item.selected a,.vector-menu-tabs .mw-list-item.selected a:visited{color:#202122;border-bottom:1px solid}.vector-menu-tabs .mw-list-item.vector-tab-noicon{margin:0 8px}.vector-menu-tabs .mw-list-item{white-space:nowrap}.vector-menu-tabs .mw-list-item{float:left;margin-bottom:0}.vector-menu-tabs .mw-list-item>a{display:inline-flex;position:relative;cursor:pointer;max-height:3.15384615em;box-sizing:border-box;font-weight:normal}.vector-menu-tabs .mw-list-item.vector-tab-noicon>a{padding:18px 0 7px 0;margin-bottom:-1px}.mw-checkbox-hack-button{display:inline-block;cursor:pointer}#mw-sidebar-button:before{}.vector-feature-page-tools-disabled #mw-sidebar-button:before{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCIgdmlld0JveD0iMCAwIDIwIDIwIj4KCTx0aXRsZT4KCQljaGV2cm9uCgk8L3RpdGxlPgoJPHBhdGggZD0ibTkgMiAxLjMgMS4zTDMuNyAxMGw2LjYgNi43TDkgMThsLTgtOCA4LTh6bTguNSAwTDE5IDMuMyAxMi4yIDEwbDYuNyA2LjctMS40IDEuMy04LTggOC04eiIvPgo8L3N2Zz4K)}.vector-feature-page-tools-disabled #mw-sidebar-checkbox:not(:checked)~.mw-header #mw-sidebar-button:before{background-image:url(data:image/svg+xml,%3Csvg\ xmlns=%22http://www.w3.org/2000/svg%22\ width=%2220%22\ height=%2220%22\ viewBox=%220\ 0\ 20\ 20%22%3E\ %3Ctitle%3E\ menu\ %3C/title%3E\ %3Cpath\ d=%22M1\ 3v2h18V3zm0\ 8h18V9H1zm0\ 6h18v-2H1z%22/%3E\ %3C/svg%3E)}#mw-sidebar-button:hover:before{opacity:1}.vector-page-titlebar{display:flex;justify-content:flex-end;box-shadow:0 1px #a2a9b1;align-items:center}.vector-page-titlebar .firstHeading{flex-grow:1;border:0}.vector-page-titlebar>.mw-ui-button:last-child,.vector-page-titlebar>.mw-portlet-lang:last-child{margin-right:-12px}.vector-page-toolbar-container{display:flex;font-size:0.8125em;box-shadow:0 1px #c8ccd1;margin-bottom:1px}.vector-page-toolbar-container .mw-portlet-views{display:none}#left-navigation{display:flex;margin-left:-8px;flex-grow:1}#right-navigation{display:flex;margin-right:-8px}#right-navigation .vector-menu-content{left:auto;right:-1px}.vector-pinnable-header-label{display:inline-block;color:#54595d;font-size:0.875rem;margin:0;padding:0;border:0}.vector-pinnable-header-toggle-button{border:0;padding:0;background-color:transparent;color:#3366cc;cursor:pointer}.vector-pinnable-header-toggle-button:hover{color:#447ff5}.vector-pinnable-header-toggle-button:before{content:"[";color:#54595d}.vector-pinnable-header-toggle-button:after{content:"]";color:#54595d}.client-js .vector-pinnable-header-pinned .vector-pinnable-header-unpin-button{display:inline-block}.vector-pinned-container .vector-pinnable-element .vector-pinnable-header{padding-left:0;padding-right:0}@keyframes rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.vector-toc{max-height:75vh;box-sizing:border-box;overflow-y:auto;overflow-x:hidden;background-color:#ffffff}.vector-feature-page-tools-disabled .vector-toc{padding:18px 12px 20px 27px}.vector-feature-page-tools-disabled .vector-toc .vector-toc-pinnable-header{padding:0 0 12px 0;border:0;line-height:initial}.vector-toc .vector-pinnable-header-label{overflow:unset}.vector-toc .vector-toc-numb{display:none}.vector-toc .vector-toc-toggle{position:absolute;top:1px;left:calc(-1*1.834em - 1px);width:1.834em;height:1.834em;font-size:0.75em;transition:100ms;color:transparent;cursor:pointer}.vector-toc .vector-toc-link{word-break:break-word;color:#3366cc;display:block}.vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded)>.vector-toc-link,.vector-toc .vector-toc-list-item-active.vector-toc-level-1-active>.vector-toc-link{color:#202122;font-weight:bold}.vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-expanded)>.vector-toc-link .vector-toc-text,.vector-toc .vector-toc-list-item-active.vector-toc-level-1-active>.vector-toc-link .vector-toc-text{width:calc(100% + 14px)}.vector-toc .vector-toc-level-1-active:not(.vector-toc-list-item-active)>.vector-toc-link{color:#202122}.vector-feature-page-tools-disabled .vector-toc .vector-toc-text{padding:4px 0}.vector-toc .vector-toc-contents,.vector-toc .vector-toc-list{margin:0;list-style:none}.vector-feature-page-tools-disabled .vector-toc .vector-toc-contents,.vector-feature-page-tools-disabled .vector-toc .vector-toc-list{line-height:18px}.vector-toc .vector-toc-list-item{display:block;position:relative;list-style-type:none;padding-left:8px}.vector-toc .vector-toc-list-item.vector-toc-level-1{padding-left:0}.vector-toc .vector-toc-list-item a{font-size:0.875em}.client-js .vector-toc .vector-toc-level-1.vector-toc-list-item-expanded .vector-toc-list-item{display:block}.client-js .vector-toc .vector-toc-toggle{display:block}.client-js .vector-toc .vector-toc-level-1.vector-toc-list-item-expanded .vector-toc-toggle{transform:rotate(0deg)}.vector-toc-landmark{display:none}.mw-ui-icon:before{opacity:0.87}}@media screen and (min-width:1000px){.mw-page-container{padding-left:2.75em;padding-right:2.75em}}@media screen and (min-width:1200px){.mw-page-container{padding-left:3.25em;padding-right:3.25em}}@media screen and (min-width:1200px){.vector-feature-page-tools-disabled #vector-toc-pinned-container .vector-toc:after,.vector-feature-page-tools-disabled #vector-toc-pinned-container .vector-toc{width:244px}}@media screen and (min-width:1000px){.mw-page-container-inner{display:grid;grid-template:min-content min-content min-content 1fr min-content/12.25em minmax(0,1fr);grid-template-areas:"header header""siteNotice siteNotice""mainMenu pageContent""toc pageContent""footer footer"}.vector-feature-page-tools-disabled .mw-page-container-inner{column-gap:44px}.vector-sitenotice-container{grid-area:siteNotice}.mw-table-of-contents-container{grid-area:toc;overflow-anchor:none}.mw-header{grid-area:header}.vector-main-menu-container{grid-area:mainMenu;overflow-anchor:none}.mw-content-container{grid-area:pageContent}.mw-footer-container{grid-area:footer}}@media screen and (min-width:1200px){.mw-page-container-inner{grid-template-columns:15.5em minmax(0,1fr)}}@media screen and (min-width:1000px){}@media screen and (min-width:1000px){.vector-feature-toc-pinned-enabled #mw-panel-toc{contain:paint}.vector-feature-page-tools-disabled.vector-feature-toc-pinned-enabled #mw-panel-toc{margin-left:-27px}#vector-toc-pinned-container{position:sticky;top:0}.vector-feature-toc-pinned-enabled #vector-toc-pinned-container{margin-top:1.5em}.vector-feature-page-tools-disabled.vector-feature-toc-pinned-enabled #mw-sidebar-checkbox:not(:checked)~.mw-table-of-contents-container #vector-toc-pinned-container{margin-top:2.09em}#vector-toc-pinned-container .vector-toc{max-height:calc(100vh - 16px);padding-bottom:24px}#vector-toc-pinned-container .vector-toc:after{content:"";display:block;position:absolute;bottom:0;left:0;right:0;height:30px;background:linear-gradient(rgba(255,255,255,0),#ffffff);background-repeat:no-repeat;background-position:-12px;pointer-events:none}.vector-feature-page-tools-disabled #vector-toc-pinned-container .vector-toc{padding-top:calc(0.75em + 18px)}}@media screen and (max-width:999px){}@media screen and (max-width:999px){.client-js #vector-toc-pinned-container .vector-toc{display:none}.client-js .vector-toc .vector-pinnable-header-toggle-button{display:none}}@media screen and (min-width:1000px){}@media screen and (max-width:999px){}@media screen and (min-width:720px){}@media screen and (min-width:1000px){.vector-user-links .mw-portlet-vector-user-menu-overflow{margin-right:8px}.vector-user-links .mw-portlet-vector-user-menu-overflow .vector-menu-content-list{column-gap:8px}}@media screen and (max-width:719px){.vector-user-links .mw-portlet-vector-user-menu-overflow .user-links-collapsible-item{display:none}}@media screen and (min-width:1200px){}@media screen and (min-width:1200px){.vector-feature-page-tools-disabled .mw-header .vector-search-box:not(.vector-search-box-auto-expand-width),.vector-feature-page-tools-disabled:not(.client-js) .mw-header .vector-search-box{padding-left:24px}}@media screen and (min-width:1000px){.mw-header .vector-search-box{margin-right:12px}}@media screen and (max-width:999px){}@media screen and (max-width:999px){}@media screen and (min-width:1000px){}@media screen and (min-width:720px){.vector-page-toolbar-container .mw-portlet-views:not(.emptyPortlet){display:block}}@media screen and (min-width:720px){}@media screen and (max-width:719px){}@media screen and (max-width:999px){.vector-pinned-container{display:none}}@media screen and (min-width:1200px){}@media screen and (min-width:1000px){}@media screen and (min-width:1000px){.client-js.vector-feature-toc-pinned-enabled .mw-table-of-contents-container.vector-toc-landmark{display:block}}@media screen and (max-width:999px){.client-js .mw-table-of-contents-container.vector-toc-landmark{display:none}}@media all{}@media all and (min-width:720px){}@media all and (min-width:720px){}.vector-pinned-container{display:none}@supports (display:grid){.vector-pinned-container{display:block}}@media screen{.mw-parser-output a.extiw,.mw-parser-output a.external{color:#3366cc}.mw-parser-output a.extiw:visited,.mw-parser-output a.external:visited{color:#795cb2}.mw-parser-output a.extiw:active,.mw-parser-output a.external:active{color:#faa700}.plainlinks a.external{background:none!important;padding:0!important}.mw-body-content:after{clear:both;content:"";display:block}.mw-body-content a.external.free{word-wrap:break-word}#catlinks{text-align:left}.catlinks{border:1px solid #a2a9b1;background-color:#f8f9fa;padding:5px;margin-top:1em;clear:both}.catlinks ul{display:inline;margin:0;padding:0;list-style:none}.catlinks li{display:inline-block;line-height:1.25em;border-left:1px solid #a2a9b1;margin:0.125em 0;padding:0 0.5em}.catlinks li:first-child{padding-left:0.25em;border-left:0}a{text-decoration:none;color:#3366cc;background:none}a:not([href]){cursor:pointer}a:visited{color:#795cb2}a:active{color:#faa700}a:hover,a:focus{text-decoration:underline}a:lang(ar),a:lang(kk-arab),a:lang(mzn),a:lang(ps),a:lang(ur){text-decoration:none}img{border:0;vertical-align:middle}h1,h2,h3{color:#000;margin:0;padding-top:0.5em;padding-bottom:0.17em;overflow:hidden}h1,h2{margin-bottom:0.6em;border-bottom:1px solid #a2a9b1}h3{margin-bottom:0.3em}h1{font-size:188%;font-weight:normal}h2{font-size:150%;font-weight:normal}h3{font-size:128%}p{margin:0.4em 0 0.5em 0}p img{margin:0}ul{margin:0.3em 0 0 1.6em;padding:0}li{margin-bottom:0.1em}dl{margin-top:0.2em;margin-bottom:0.5em}dd{margin-bottom:0.1em}pre,code{font-family:monospace,monospace}pre,code{background-color:#f8f9fa;color:#000;border:1px solid #eaecf0}code{border-radius:2px;padding:1px 4px}pre{padding:1em;white-space:pre-wrap;overflow-x:hidden;word-wrap:break-word}form{border:0;margin:0}@counter-style meetei{system:numeric;symbols:"꯰""꯱""꯲""꯳""꯴""꯵""꯶""꯷""꯸""꯹";suffix:") "}@counter-style santali{system:numeric;symbols:"᱐""᱑""᱒""᱓""᱔""᱕""᱖""᱗""᱘""᱙"}@counter-style myanmar_with_period{system:numeric;symbols:"၀""၁""၂""၃""၄""၅""၆""၇""၈""၉";suffix:"။ "}.mw-content-ltr ul{margin:0.3em 0 0 1.6em;padding:0}.mw-content-ltr dd{margin-left:1.6em;margin-right:0}h1:lang(anp),h1:lang(as),h1:lang(bh),h1:lang(bho),h1:lang(blk),h1:lang(bn),h1:lang(gu),h1:lang(hi),h1:lang(kjp),h1:lang(kn),h1:lang(ks),h1:lang(ksw),h1:lang(mag),h1:lang(ml),h1:lang(mr),h1:lang(my),h1:lang(mai),h1:lang(mnw),h1:lang(ne),h1:lang(new),h1:lang(or),h1:lang(pa),h1:lang(pi),h1:lang(rki),h1:lang(sa),h1:lang(shn),h1:lang(syl),h1:lang(ta),h1:lang(te){line-height:1.6em!important}h2:lang(anp),h2:lang(as),h2:lang(bh),h2:lang(bho),h2:lang(blk),h2:lang(bn),h2:lang(gu),h2:lang(hi),h2:lang(kjp),h2:lang(kn),h2:lang(ks),h2:lang(ksw),h2:lang(mag),h2:lang(ml),h2:lang(mr),h2:lang(my),h2:lang(mai),h2:lang(mnw),h2:lang(ne),h2:lang(new),h2:lang(or),h2:lang(pa),h2:lang(pi),h2:lang(rki),h2:lang(sa),h2:lang(shn),h2:lang(syl),h2:lang(ta),h2:lang(te),h3:lang(anp),h3:lang(as),h3:lang(bh),h3:lang(bho),h3:lang(blk),h3:lang(bn),h3:lang(gu),h3:lang(hi),h3:lang(kjp),h3:lang(kn),h3:lang(ks),h3:lang(ksw),h3:lang(mag),h3:lang(ml),h3:lang(mr),h3:lang(my),h3:lang(mai),h3:lang(mnw),h3:lang(ne),h3:lang(new),h3:lang(or),h3:lang(pa),h3:lang(pi),h3:lang(rki),h3:lang(sa),h3:lang(shn),h3:lang(syl),h3:lang(ta),h3:lang(te),h4:lang(anp),h4:lang(as),h4:lang(bh),h4:lang(bho),h4:lang(blk),h4:lang(bn),h4:lang(gu),h4:lang(hi),h4:lang(kjp),h4:lang(kn),h4:lang(ks),h4:lang(ksw),h4:lang(mag),h4:lang(ml),h4:lang(mr),h4:lang(my),h4:lang(mai),h4:lang(mnw),h4:lang(ne),h4:lang(new),h4:lang(or),h4:lang(pa),h4:lang(pi),h4:lang(rki),h4:lang(sa),h4:lang(shn),h4:lang(syl),h4:lang(ta),h4:lang(te),h5:lang(anp),h5:lang(as),h5:lang(bh),h5:lang(bho),h5:lang(blk),h5:lang(bn),h5:lang(gu),h5:lang(hi),h5:lang(kjp),h5:lang(kn),h5:lang(ks),h5:lang(ksw),h5:lang(mag),h5:lang(ml),h5:lang(mr),h5:lang(my),h5:lang(mai),h5:lang(mnw),h5:lang(ne),h5:lang(new),h5:lang(or),h5:lang(pa),h5:lang(pi),h5:lang(rki),h5:lang(sa),h5:lang(shn),h5:lang(syl),h5:lang(ta),h5:lang(te),h6:lang(anp),h6:lang(as),h6:lang(bh),h6:lang(bho),h6:lang(blk),h6:lang(bn),h6:lang(gu),h6:lang(hi),h6:lang(kjp),h6:lang(kn),h6:lang(ks),h6:lang(ksw),h6:lang(mag),h6:lang(ml),h6:lang(mr),h6:lang(my),h6:lang(mai),h6:lang(mnw),h6:lang(ne),h6:lang(new),h6:lang(or),h6:lang(pa),h6:lang(pi),h6:lang(rki),h6:lang(sa),h6:lang(shn),h6:lang(syl),h6:lang(ta),h6:lang(te){line-height:1.4em}h2:lang(th){line-height:1.6}}#archnavbar{height:40px!important;padding:10px 15px!important;background:#333!important;border-bottom:5px #08c solid!important}#archnavbarlogo{float:left!important;margin:0!important;padding:0!important;height:40px!important;width:190px!important}html>body #archnavbarlogo{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEiIHdpZHRoPSI2MDAiIGhlaWdodD0iMTI2Ij48cGF0aCBkPSJNMTU5LjU2OCAzNC40MjdjLTguODktLjAxNC0xNi4yNjcgMS44MDktMTkuMTIgMi44MDNsLTIuOTM3IDE1Ljg1N2MtLjAwNy4wNTggMTQuNjE3LTMuOSAyMS4wNTktMy42NjcgMTAuNjY1LjM4MyAxMS42NDYgNC4wNzYgMTEuNDYgOS4wNi4xODIuMjkyLTIuNzUyLTQuNTAzLTExLjk3OS00LjY2NC0xMS42NC0uMi0yOC4wNjkgNC4xMjItMjguMDQ2IDIxLjY5Mi0uMzE0IDE5Ljc2NSAxNC43NjQgMjUuNTc5IDI1LjAzMiAyNS42ODYgOS4yMzItLjE2OCAxMy41NjMtMy40OTYgMTUuOTM0LTUuMjggMy4xMTUtMy4yNTcgNi42NzktNi41MzIgMTAuMDc4LTEwLjQ2Mi0zLjIxNiA1Ljg0NC02LjAwNSA5Ljg4NC04LjkwNyAxMi45Nzd2Mi42MTFsMTQuMDMzLTIuMzYxLjA5Ni0zOC4xNDRjLS4xNDMtNS4zOTkgMy4wOTYtMjYuMDU3LTI2LjcwMy0yNi4xMDh6bS0yLjAxNiAzMy4yMWM1LjgxNy4wOCAxMi40ODggMi45NDggMTIuNDk3IDkuODQ5LjAzIDYuMjc3LTcuODYzIDkuNjUxLTEyLjk5NiA5LjU5OC01LjEzNS0uMDUzLTExLjk0OS00LjAzNi0xMS45NzktMTAuMTU1LjA5OS01LjQ3IDYuNDI2LTkuNDMyIDEyLjQ3OC05LjI5MXptMzcuOTcyLTI5LjY4NWwtLjA5NSA2My4xNjYgMTYuMzQ4LTMuMTUuMDI3LTM1LjgxNGMuMDA0LTUuMzMzIDcuNjItMTEuNTY0IDE3LjE3OC0xMS40NjQgMi4wMjgtMy42NyA1Ljg0LTEzLjA1IDYuNzctMTUuMTgzLTIxLjM1MS0uMDUxLTIxLjYyMyA2LjEzNy0yNS4zMzYgOS4xOC0uMDQtNS44MDYtLjAxMy05LjI5Mi0uMDEzLTkuMjkybC0xNC44NzkgMi41NTd6bTkyLjAwMiA4LjI5MmMtLjE1OC0uMDc0LTguNTI2LTkuNzg4LTI1LjM1LTkuODY0LTE1Ljc1OC0uMjYyLTMzLjQzMyA1Ljg0Ny0zMy43MTYgMzIuMjcuMTM4IDIzLjIzMiAxNi45NzkgMzIuMzExIDMzLjgwNSAzMi40ODggMTguMDA3LjE4NyAyNS4xNzItMTEuMjYgMjUuNjAyLTExLjU0My0yLjE0OS0xLjg2My0xMC4xOTYtOS44MzctMTAuMTk2LTkuODM3cy01LjAyNyA3LjE1Ny0xNC43NzkgNy4yNDhjLTkuNzU1LjA5My0xOC4yMzQtNy41NC0xOC4zNTQtMTguMTg5LS4xMjUtMTAuNjUgNy43OTUtMTYuNDE5IDE4LjQyNy0xNi44ODUgOS4yMDUtLjAwMiAxNC41MTYgNS45NDMgMTQuNTE2IDUuOTQzem0yMC42MDYtMzAuMzk5bC0xNS40MzQgMy42MjguMTE1IDgyLjI3NyAxNS4yMDQtMi43NDUuMTcyLTM4LjcyYy4wMzMtNC4wNiA1Ljg3NC0xMC4yOTUgMTUuNjI2LTEwLjA5NyA5LjMyNS4wOTcgMTEuNDEgNi4yMTUgMTEuMzg0IDYuOTg4bC4yNjkgNDQuODI0IDE0Ljk5My0yLjY1LjA1Ny00Ny41M2MuMDk5LTQuNTc0LTEwLjAxOC0xNC4yMzMtMjYuMjgtMTQuMzAyLTcuNzI5LjAxMi0xMi4wMDkgMS43NjItMTQuMTg3IDMuMDUyLTMuNzI2IDIuODc5LTcuOTg1IDUuNjM3LTEyLjE3IDkuMTU3IDMuODY5LTQuOTcgNy4xMTctOC40MDcgMTAuMjktMTAuOTYxbC0uMDQtMjIuOTIxeiIgZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIi8+PHBhdGggZD0iTTM2MC4xMzYgMTcuMjE4bDYuOTYyLTEuNzQyLjMzIDgyLjk1LTcuMDc0IDEuMjA0em0xOC45MjggMjQuNzU3bDYuMTAxLTIuNzE2LjA1MiA1OS40NzgtNS44OTIgMS4yMTd6bS0xLjQ1LTIxLjQ0OGw0LjkyLTQuMDE1IDQuMDg2IDQuNTQ3LTQuOTIxIDQuMTIxem0xOS4wMjQgMjAuMzY1bDYuOTYyLTEuNDIxLjAzMyAxMi40MzRjLjAwMS41MzQgMy44MjMtMTMuODkgMjIuMjU4LTEzLjU3IDE3LjkuMSAyMC44MjcgMTMuOTU3IDIwLjczIDE3LjA2NGwuMjIxIDQzLjcyNS02LjEwMiAxLjMyNC0uMDM1LTQzLjE4OWMuMDctMS4yNjEtMi43OS0xMS45MjctMTUuNDM5LTExLjk2Ni0xMi42NDYtLjAzNy0yMS40MDkgOS4xODYtMjEuMzkzIDE1LjA3OGwuMSAzOC4wNDctNy4wNyAxLjg0N3ptMTEwLjk1NCA1OC41NDZsLTYuOTYyIDEuNDItLjAzMy0xMi40MzNjLS4wMDEtLjUzNC0zLjgyNSAxMy44OS0yMi4yNTggMTMuNTctMTcuOS0uMS0yMC44MjctMTMuOTU3LTIwLjczLTE3LjA2NGwtLjIyMS00My43MjUgNy4zOTctMS40OTQuMTE0IDQzLjE5Yy4wMDMgMS4xOCAxLjQxNiAxMi4wOTYgMTQuMDY1IDEyLjEzNSAxMi42NDYuMDM3IDIxLjUwNi03LjYxNiAyMS41NjktMTkuMTM5bC0uMDktMzQuMDc2IDYuODg1LTEuNzU3em0xMy42NDUtNTkuMDM3bC00Ljg4MiAzLjgyIDE4LjcxNyAyNC40OTQtMTkuOTYzIDI4LjMgNS4xNzkgMy44NDMgMTguNzY2LTI2LjI4IDE5LjM2OCAyNi45MDIgNC43OTEtMy44Mi0yMC43NTctMjguNzY1IDE2LjU2LTIzLjI2Mi01LjA5Mi00LjMwNS0xNS4wODUgMjEuNTI1ek02MS44OCAxLjc3OGMtNS4zODUgMTMuMjAzLTguNjMzIDIxLjgzOS0xNC42MjkgMzQuNjQ5IDMuNjc2IDMuODk2IDguMTg4IDguNDM0IDE1LjUxNiAxMy41NTktNy44NzgtMy4yNDItMTMuMjUyLTYuNDk3LTE3LjI2Ny05Ljg3NC03LjY3MyAxNi4wMTEtMTkuNjk1IDM4LjgxOC00NC4wOSA4Mi42NSAxOS4xNzQtMTEuMDY4IDM0LjAzNy0xNy44OTMgNDcuODg5LTIwLjQ5N2EzNS4xMDMgMzUuMTAzIDAgMCAxLS45MS04LjIxM2wuMDIzLS42MTRjLjMwNC0xMi4yODQgNi42OTQtMjEuNzMgMTQuMjY0LTIxLjA5IDcuNTcuNjQyIDEzLjQ1NCAxMS4xMjYgMTMuMTUgMjMuNDEtLjA1OCAyLjMxMi0uMzE5IDQuNTM2LS43NzQgNi41OTggMTMuNzAxIDIuNjggMjguNDA1IDkuNDg3IDQ3LjMyIDIwLjQwNy0zLjczLTYuODY2LTcuMDU5LTEzLjA1Ni0xMC4yMzgtMTguOTUtNS4wMDctMy44ODItMTAuMjMtOC45MzMtMjAuODg0LTE0LjQwMiA3LjMyMyAxLjkwMyAxMi41NjYgNC4wOTkgMTYuNjUzIDYuNTUyQzc1LjU4IDM1Ljc4NiA3Mi45NjMgMjcuNzkgNjEuODggMS43Nzh6IiBmaWxsPSIjMTc5M2QxIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48cGF0aCBkPSJNNTc2Ljc3MSA5My4yNjVWODAuNjAzaC00Ljczdi0xLjY5NWgxMS4zOHYxLjY5NWgtNC43NXYxMi42NjJoLTEuOW04LjYyOSAwVjc4LjkwOGgyLjg1OWwzLjM5OCAxMC4xNjZjLjMxNC45NDcuNTQyIDEuNjU1LjY4NiAyLjEyNS4xNjMtLjUyMi40MTgtMS4yOS43NjQtMi4zMDFsMy40MzctOS45OWgyLjU1NnYxNC4zNTdoLTEuODMxVjgxLjI1bC00LjE3MiAxMi4wMTZoLTEuNzE0bC00LjE1Mi0xMi4yMjJ2MTIuMjIyaC0xLjgzMiIgZm9udC13ZWlnaHQ9IjQwMCIgZm9udC1zaXplPSI4LjQ0MSIgZm9udC1mYW1pbHk9IkRlamFWdSBTYW5zIE1vbm8iIGZpbGw9ImdyYXkiLz48L3N2Zz4=)no-repeat!important;background-size:190px 40px!important}#archnavbarlogo p{margin:0!important;padding:0!important;text-indent:-9999px!important}#archnavbarlogo a{display:block!important;height:40px!important;width:190px!important}#archnavbar ul{display:inline!important;float:right!important;list-style:none!important;margin:0!important;padding:0!important}#archnavbar ul li{float:left!important;font-size:14px!important;font-family:sans-serif!important;line-height:45px!important;padding-right:15px!important;padding-left:15px!important}#archnavbar ul#archnavbarlist li a{color:#999;font-weight:bold!important;text-decoration:none!important}#archnavbar ul li a:hover{color:white!important;text-decoration:underline!important}#archnavbar ul li.anb-selected a{color:white!important}@media (max-width:600px){#anb-wiki{display:none}}@media (max-width:680px){html>body #archnavbarlogo{width:40px!important;margin-right:5px!important;background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAwIiBoZWlnaHQ9IjEyMDAiIHZlcnNpb249IjEiPjxwYXRoIGQ9Ik02MDAgMGMtNTMuNDE2IDEzMC45NjItODUuNjcxIDIxNi43NC0xNDUuMTQzIDM0My44MSAzNi40NjQgMzguNjUxIDgxLjIyIDgzLjQ0OSAxNTMuOTA1IDEzNC4yODUtNzguMTQ1LTMyLjE1Ni0xMzEuNDAzLTY0LjIxMy0xNzEuMjM4LTk3LjcxNEMzNjEuNDEgNTM5LjIgMjQxLjk4OSA3NjUuMTk0IDAgMTIwMGMxOTAuMTYxLTEwOS43ODQgMzM3LjY2NS0xNzcuMzk3IDQ3NS4wNDgtMjAzLjIzOC01Ljg5NS0yNS4zNjctOS4xOC01Mi44OTYtOC45NTMtODEuNTI0bC4xOS01LjkwNUM0NjkuMzA1IDc4Ny40OCA1MzIuNzIgNjkzLjYzOCA2MDcuODEgNzAwYzc1LjA4OSA2LjM2MiAxMzMuNDk0IDExMC41MjggMTMwLjQ3NiAyMzIuMzgxLS41NjggMjIuOTE2LTMuMTA1IDQ0Ljg4NS03LjYyIDY1LjMzM0M4NjYuNTI4IDEwMjQuMzI1IDEwMTIuNDYyIDEwOTEuNzMgMTIwMCAxMjAwYy0zNi45OTUtNjguMTExLTcwLjE4LTEyOS4zMzUtMTAxLjcxNC0xODcuODEtNDkuNjcyLTM4LjQ5OS0xMDEuMzY1LTg4LjYxMy0yMDcuMDQ4LTE0Mi44NTcgNzIuNjQgMTguODc1IDEyNC43OTMgNDAuNjEyIDE2NS4zMzMgNjQuOTUzQzczNS45NTIgMzM3LjM0OCA3MDkuOTQ4IDI1OC4wMTYgNjAwIDB6IiBmaWxsPSIjMTc5M2QxIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiLz48L3N2Zz4=)no-repeat!important;background-size:40px 40px!important}#archnavbar ul{display:flex!important;justify-content:space-between;flex-wrap:nowrap;overflow:hidden;float:none!important}#archnavbar ul li{padding:0!important;float:none!important}}@media (max-width:845px){#anb-home{display:none}html>body #archnavbarlogo{padding-right:15px!important}#archnavbar{padding-left:5px!important;padding-right:5px!important}#archnavbar ul li{padding-left:5px!important;padding-right:5px!important}}body{background:#f6f9fc}#content{background:#ffffff;border:1px solid #cccccc}#content h1,#content h2,#content h3,#content pre,#content code{color:#222222}#content ul{list-style-image:none}#content pre:not([class*="CodeMirror"]){border:1px solid #bbccdd;overflow:auto;word-break:break-all;white-space:pre-wrap!important}#content pre:not([class*="CodeMirror"]),#content code{background-color:#ebf1f5;font-family:monospace,monospace}#content code{display:inline-block;padding:0 0.3em;border-width:0;border-radius:0}#footer{color:#333333}#bodyContent>div.mw-content-ltr a{font-weight:bold}#content a:not([role=button]):not(.new),header.mw-header li:not(.new) a:not([role=button]):not(.new),#mw-panel-toc a:not([role=button]):not(.new),#mw-navigation li:not(.new) a:not([role=button]):not(.new),#mw-panel li:not(.new) a:not([role=button]):not(.new),#column-one li:not(.new) a:not([role=button]):not(.new),#footer a:not([role=button]):not(.new){text-decoration:none;color:#0077bb!important}#content a:not([role=button]):not(.new):hover,header.mw-header li:not(.new) a:not([role=button]):not(.new):hover,#mw-panel-toc a:not([role=button]):not(.new):hover,#mw-navigation li:not(.new) a:not([role=button]):not(.new):hover,#mw-panel li:not(.new) a:not([role=button]):not(.new):hover,#column-one li:not(.new) a:not([role=button]):not(.new):hover,#footer a:not([role=button]):not(.new):hover{text-decoration:underline;background-color:transparent;color:#999999!important}#content a:not([role=button]):active,header.mw-header li:not(.new) a:not([role=button]):active,#mw-panel-toc a:not([role=button]):active,#mw-navigation li:not(.new) a:not([role=button]):active,#mw-panel li:not(.new) a:not([role=button]):active,#column-one li:not(.new) a:not([role=button]):active,#footer a:not([role=button]):active,#content a:not([role=button]):focus,header.mw-header li:not(.new) a:not([role=button]):focus,#mw-panel-toc a:not([role=button]):focus,#mw-navigation li:not(.new) a:not([role=button]):focus,#mw-panel li:not(.new) a:not([role=button]):focus,#column-one li:not(.new) a:not([role=button]):focus,#footer a:not([role=button]):focus,#content a:not([role=button]):active:hover,header.mw-header li:not(.new) a:not([role=button]):active:hover,#mw-panel-toc a:not([role=button]):active:hover,#mw-navigation li:not(.new) a:not([role=button]):active:hover,#mw-panel li:not(.new) a:not([role=button]):active:hover,#column-one li:not(.new) a:not([role=button]):active:hover,#footer a:not([role=button]):active:hover,#content a:not([role=button]):focus:hover,header.mw-header li:not(.new) a:not([role=button]):focus:hover,#mw-panel-toc a:not([role=button]):focus:hover,#mw-navigation li:not(.new) a:not([role=button]):focus:hover,#mw-panel li:not(.new) a:not([role=button]):focus:hover,#column-one li:not(.new) a:not([role=button]):focus:hover,#footer a:not([role=button]):focus:hover{color:#ee9900!important}#content a:not(.new):not([role=button]):visited,#mw-panel li:not(.new) a:not(.new):not([role=button]):visited,#p-navigation li:not(.new) a:not(.new):not([role=button]):visited,#p-tb li:not(.new) a:not(.new):not([role=button]):visited{color:#666666!important}.mw-body-content a.external,.mw-body-content a.extiw{background:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMyI+Cgk8cGF0aCBmaWxsPSIjMzZiIiBkPSJNNS4wMDIgMS4wMWg3djdsLTItMi0zIDJ2LTFsMy0yLjI1IDEgMVYyLjAxaC0zLjc1bDEgMS0yLjI1IDNoLTFsMi0zeiIvPgoJPHBhdGggZmlsbD0iIzM2YiIgZD0iTTcuMDAyIDMuMDFoLTV2OGg4di01aC0xdjRoLTZ2LTZoNHoiLz4KCTxwYXRoIGZpbGw9IiMxNWE1ZWEiIGQ9Ik00LjA4MiA1LjUxYzAtLjYyMS42MjEtLjYyMS42MjEtLjYyMSAxLjg2NC42MjEgMy4xMDcgMS44NjQgMy43MjggMy43MjggMCAwIDAgLjYyMS0uNjIuNjIxLTEuMjQ1LTEuODY0LTEuODY2LTIuNDg1LTMuNzMtMy43Mjh6Ii8+Cjwvc3ZnPgo=)center right no-repeat;padding-right:13px}.mw-body h1,.mw-body-content h2{font-family:sans-serif}body.skin-vector.skin--responsive li:not(:first-child).selected{margin-left:-1px}body.skin-vector div.mw-page-container{background-color:#f6f9fc}@media screen{body.skin-vector-2022 .mw-body{padding:1.5em}body.skin-vector-2022 .mw-ui-icon-flush-left{margin-left:0}body.skin-vector-2022 .mw-ui-icon-flush-right{margin-right:0}}@media screen and (max-width:999px){body.skin-vector-2022 .mw-page-container{padding-left:0;padding-right:0}body.skin-vector-2022 .mw-body,body.skin-vector-2022 .mw-footer{padding:0.5em}body.skin-vector-2022 .mw-content-container{max-width:100%}}@media screen{}@media screen and (min-width:1000px){body.skin-vector-2022 #mw-panel-toc.mw-table-of-contents-container{margin-left:0}body.skin-vector-2022 #mw-panel-toc.mw-table-of-contents-container #vector-toc-pinned-container{margin-top:0!important;border:1px solid #cccccc}body.skin-vector-2022 #mw-panel-toc.mw-table-of-contents-container #vector-toc-pinned-container .vector-toc,body.skin-vector-2022 #mw-panel-toc.mw-table-of-contents-container #vector-toc-pinned-container .vector-toc::after{width:auto}}body.skin-vector-2022 .vector-page-titlebar>.mw-ui-button:last-child,body.skin-vector-2022 .vector-page-titlebar>.mw-portlet-lang:last-child{margin-right:auto}@media screen and (max-width:720px){}.oo-ui-icon-bright,.mw-ui-icon-bright:before{background-image:url(data:image/svg+xml,%3Csvg\ xmlns=%22http://www.w3.org/2000/svg%22\ width=%2220%22\ height=%2220%22\ viewBox=%220\ 0\ 20\ 20%22%3E%3Ctitle%3E\ bright\ %3C/title%3E%3Cpath\ d=%22M17.07\ 7.07V2.93h-4.14L10\ 0\ 7.07\ 2.93H2.93v4.14L0\ 10l2.93\ 2.93v4.14h4.14L10\ 20l2.93-2.93h4.14v-4.14L20\ 10zM10\ 16a6\ 6\ 0\ 1\ 1\ 6-6\ 6\ 6\ 0\ 0\ 1-6\ 6z%22/%3E%3Ccircle\ cx=%2210%22\ cy=%2210%22\ r=%224.5%22/%3E%3C/svg%3E)}@media screen{}.vector-limited-width-toggle{display:none}@media (min-width:1400px){.vector-limited-width-toggle{display:block;position:fixed;bottom:8px;right:8px}.vector-feature-limited-width-enabled .vector-limited-width-toggle:before{background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PGcgZmlsbD0iIzAwMCIgZmlsbC1ydWxlPSJldmVub2RkIj48cGF0aCBkPSJNMTYuNSAzLjV2NUgxNVY1aC0zLjVWMy41aDVaTTE2LjUgMTYuNXYtNUgxNVYxNWgtMy41djEuNWg1Wk0zLjUgMy41djVINVY1aDMuNVYzLjVoLTVaTTMuNSAxNi41di01SDVWMTVoMy41djEuNWgtNVoiLz48L2c+PC9zdmc+)}}</style><meta name=ResourceLoaderDynamicStyles content>
|
||
<style>.mw-body-content{margin-top:0}pre{white-space:pre}.mw-body-content a.external[href^="https://wiki.archlinux.org"]{background:none;padding-right:0}span.archwiki-template-pkg,span.archwiki-template-man{font-family:monospace,monospace}div.archwiki-template-box{padding:5px;border:thin solid black;margin:0.5em 0;overflow:hidden}div.archwiki-template-box.archwiki-template-box-note{background-color:#ddf;border-color:#bbd}div.archwiki-template-box.archwiki-template-box-tip{background-color:#dfd;border-color:#bdb}div.archwiki-template-message{position:relative;overflow:hidden;min-height:4.6em;margin-bottom:1em;background-color:#f9faff;border:1px solid #d7dfe3;padding:0 100px;text-align:center}div.archwiki-template-message>p>span[typeof="mw:File"]{display:block;position:absolute;top:5px}div.archwiki-template-message>p>span[typeof="mw:File"]:first-of-type{left:26px}div.archwiki-template-message>p>span[typeof="mw:File"]:last-of-type{right:26px}div.archwiki-template-message>div{font-size:90%}div.archwiki-template-meta-related-articles{float:right;clear:right;width:25%;margin:0 0 0.5em 0.5em}div.archwiki-template-meta-related-articles>p{background:#333;color:white;padding:0.2em;border-bottom:5px #08c solid;margin:0;text-align:center;font-weight:bold}div.archwiki-template-meta-related-articles>ul{list-style-type:none;margin:0;padding:0.3em}div.archwiki-template-meta-related-articles>ul>li{padding:0.4em 0;line-height:1}@media screen and (min-width:721px){}@media screen and (max-width:720px){div.archwiki-template-meta-related-articles{float:initial;width:initial;border:1px solid #a2a9b1;background-color:#f8f9fa;padding:5px;margin:1em 0;margin-top:0;clear:both}div.archwiki-template-meta-related-articles>p{background:initial;color:initial;padding:0;border:none;margin:0;text-align:left;font-weight:normal;display:inline}div.archwiki-template-meta-related-articles>p::after{content:":"}div.archwiki-template-meta-related-articles>ul{margin:0;padding:0;display:inline}div.archwiki-template-meta-related-articles>ul>li{line-height:initial;display:inline;white-space:nowrap;padding:0 0.5em;border-left:1px solid #a2a9b1}div.archwiki-template-meta-related-articles>ul>li:first-child{padding-left:0.25em;border-left:0}div.archwiki-template-meta-related-articles>ul>li a{font-weight:normal!important}}@media screen and (min-width:721px){}.mw-body-content h2{font-size:150%}.mw-body-content h3{font-size:128%}body{counter-reset:h2-section h3-section h4-section h5-section h6-section}h2>.mw-headline{counter-increment:h2-section;counter-set:h3-section h4-section h5-section h6-section}h3>.mw-headline{counter-increment:h3-section;counter-set:h4-section h5-section h6-section}h2>.mw-headline::before{content:counter(h2-section)}h3>.mw-headline::before{content:counter(h2-section)"."counter(h3-section)}h2>.mw-headline::before,h3>.mw-headline::before,h4>.mw-headline::before,h5>.mw-headline::before,h6>.mw-headline::before{color:#6b3e26;font-style:italic;margin-right:1ex}.skin-vector-2022 .vector-toc .vector-toc-numb{display:inline;padding-right:0.5em}body:not(.page-Main_page) #bodyContent{display:flex;flex-direction:column}body:not(.page-Main_page) #contentSub{order:-2;margin-bottom:0}body:not(.page-Main_page) #catlinks{order:-1;margin:0.5em 0 1em}body:not(.page-Main_page) p:first-child,.archwiki-template-meta-related-articles-start+p{margin-top:0}#contentSub:empty,#contentSub2:empty{display:none}@keyframes pacman-jaw-top{0%,100%{transform:rotate(-45deg)}50%{transform:rotate(-80deg)}}@keyframes pacman-jaw-bottom{0%,100%{transform:rotate(-45deg)}50%{transform:rotate(0deg)}}@keyframes pacman-food-translation{0%{transform:translateX(60%)}100%{transform:translateX(-40%)}}@media screen{}</style>
|
||
<meta name=generator content="MediaWiki 1.40.1">
|
||
<meta name=robots content=max-image-preview:standard>
|
||
<meta name=format-detection content="telephone=no">
|
||
<meta name=viewport content="width=device-width, initial-scale=1.0, user-scalable=yes, minimum-scale=0.25, maximum-scale=5.0">
|
||
<link rel=search type=application/opensearchdescription+xml href=https://wiki.archlinux.org/opensearch_desc.php title="ArchWiki (en)">
|
||
<link rel=EditURI type=application/rsd+xml href="https://wiki.archlinux.org/api.php?action=rsd">
|
||
<link rel=license href=https://www.gnu.org/copyleft/fdl.html>
|
||
<link rel=alternate type=application/atom+xml title="ArchWiki Atom feed" href="https://wiki.archlinux.org/index.php?title=Special:RecentChanges&feed=atom">
|
||
<meta property=mw:PageProp/toc><meta name=referrer content=no-referrer><link rel=icon href=data:image/vnd.microsoft.icon;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAABvElEQVQ4jY2TP4gTQRTGfzM7ybp35mBX8LY4GxM5OI4UiqDWtoKIjWhl4QmmEQwIhzZaa3GLlYWgjViI+AcUrrASUYTbQ0UxepwpFj1EDCSXuLNj4QYSLxP8mnm8972P3wyMMMZgUxjF+ycLUjUW5l/YPMq6/VfnHCEmAGuAsBHsurG6QwiaRUeq2cCdfXy88nmUT9qSJ4tywVNyGxjVSbPzNp81wFNyt6cknpJ00uzk2Wfr/n8HHLrz4ajriFeuEsuekvS08Zu/eoujvFveYN+t98XAUw1jmEmN+ZEZfG2M8BzZKhVl+f6x8vexBIGn6hMFOeMqgTEEXZ2J39qwqbNSR5tLYwnmbr6b2hO4axvt1P/a6tHTw3SuI1pTrlNZPT33bSTBps7qb5K23/jZ7S8/AO72511tShud9MJIgjCKdwINYHs+e5TUqkfy2W3gVN5vA+WkVk3+Jbg8sAzwcKB+mp8G+ALUh64QRnEZOMOwPg3Ub/vEgAvcGwoArgKFvF4DrgEfBwKawHVgHagAy2EUnwAQ00sre4HXwBPgSlKrvmSMwig+CCwCh4F5Mb20chF4ntSq1h83JujAH3Eom+H9uAq8AAAAAElFTkSuQmCC><style>.sf-hidden{display:none!important}</style><link rel=canonical href=https://wiki.archlinux.org/title/Systemd/Timers><meta http-equiv=content-security-policy content="default-src 'none'; font-src 'self' data:; img-src 'self' data:; style-src 'unsafe-inline'; media-src 'self' data:; script-src 'unsafe-inline' data:; object-src 'self' data:; frame-src 'self' data:;"><style>img[src="data:,"],source[src="data:,"]{display:none!important}</style></head>
|
||
<body class="skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Systemd_Timers rootpage-Systemd skin-vector-2022 action-view skin--responsive uls-dialog-sticky-hide"><div id=archnavbar class="noprint mw-no-invert">
|
||
<div id=archnavbarlogo>
|
||
<p><a id=logo href=https://archlinux.org/></a></p>
|
||
</div>
|
||
<div id=archnavbarmenu>
|
||
<ul id=archnavbarlist>
|
||
<li id=anb-home><a href=https://archlinux.org/>Home</a></li> <li id=anb-packages><a href=https://archlinux.org/packages/>Packages</a></li> <li id=anb-forums><a href=https://bbs.archlinux.org/>Forums</a></li> <li id=anb-wiki class=anb-selected><a href=https://wiki.archlinux.org/>Wiki</a></li> <li id=anb-gitlab><a href=https://gitlab.archlinux.org/archlinux>GitLab</a></li> <li id=anb-security><a href=https://security.archlinux.org/>Security</a></li> <li id=anb-aur><a href=https://aur.archlinux.org/>AUR</a></li> <li id=anb-download><a href=https://archlinux.org/download/>Download</a></li> </ul>
|
||
</div>
|
||
</div>
|
||
<div class=mw-page-container>
|
||
<a class=mw-jump-link href=#bodyContent>Jump to content</a>
|
||
<div class=mw-page-container-inner>
|
||
<input type=checkbox id=mw-sidebar-checkbox class="mw-checkbox-hack-checkbox sf-hidden">
|
||
<header class="mw-header mw-ui-icon-flush-left mw-ui-icon-flush-right">
|
||
<div class=vector-header-start>
|
||
<label id=mw-sidebar-button class="mw-checkbox-hack-button mw-ui-icon mw-ui-button mw-ui-quiet mw-ui-icon-element mw-ui-icon-flush-right" for=mw-sidebar-checkbox role=button aria-controls=mw-panel data-event-name=ui.sidebar tabindex=0 title="Main menu" aria-expanded=false>
|
||
<span>Toggle sidebar</span>
|
||
</label>
|
||
|
||
<a href=https://wiki.archlinux.org/title/Main_page class="mw-logo sf-hidden">
|
||
|
||
</a>
|
||
</div>
|
||
<div class=vector-header-end>
|
||
|
||
<div id=p-search role=search class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box">
|
||
<a href=https://wiki.archlinux.org/title/Special:Search title="Search ArchWiki [⌃⌥f]" accesskey=f class="mw-ui-button mw-ui-quiet mw-ui-icon mw-ui-icon-element mw-ui-icon-wikimedia-search search-toggle sf-hidden">
|
||
|
||
</a>
|
||
|
||
<div>
|
||
<form action=/index.php id=searchform class=vector-search-box-form>
|
||
<div id=simpleSearch class=vector-search-box-inner data-search-loc=header-moved>
|
||
<input class=vector-search-box-input type=search name=search placeholder="Search ArchWiki" aria-label="Search ArchWiki" autocapitalize=sentences title="Search ArchWiki [⌃⌥f]" accesskey=f id=searchInput autocomplete=off value>
|
||
|
||
<input id=mw-searchButton class="searchButton mw-fallbackSearchButton" type=submit name=fulltext title="Search the pages for this text" value=Search>
|
||
<input id=searchButton class=searchButton type=submit name=go title="Go to a page with this exact name if it exists" value=Go>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
<nav class=vector-user-links aria-label="Personal tools" role=navigation>
|
||
|
||
<div id=p-vector-user-menu-overflow class="vector-menu mw-portlet mw-portlet-vector-user-menu-overflow">
|
||
<div class=vector-menu-content>
|
||
|
||
<ul class=vector-menu-content-list><li id=pt-createaccount-2 class="user-links-collapsible-item mw-list-item"><a href="https://wiki.archlinux.org/index.php?title=Special:CreateAccount&returnto=Systemd%2FTimers" title="You are encouraged to create an account and log in; however, it is not mandatory"><span>Create account</span></a><li id=pt-login-2 class="user-links-collapsible-item mw-list-item"><a href="https://wiki.archlinux.org/index.php?title=Special:UserLogin&returnto=Systemd%2FTimers" title="You are encouraged to log in; however, it is not mandatory [⌃⌥o]" accesskey=o><span>Log in</span></a></ul>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div id=vector-user-links-dropdown class="vector-menu vector-dropdown vector-menu-dropdown vector-user-menu vector-user-menu-logged-out" title="More options">
|
||
<input type=checkbox id=vector-user-links-dropdown-checkbox role=button aria-haspopup=true data-event-name=ui.dropdown-vector-user-links-dropdown class=vector-menu-checkbox aria-label="Personal tools">
|
||
<label id=vector-user-links-dropdown-label for=vector-user-links-dropdown-checkbox class="vector-menu-heading mw-checkbox-hack-button mw-ui-button mw-ui-quiet mw-ui-icon-element" aria-hidden=true>
|
||
<span class="mw-ui-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span>
|
||
<span class=vector-menu-heading-label>Personal tools</span>
|
||
</label>
|
||
<div class="vector-menu-content vector-dropdown-content">
|
||
|
||
<div id=p-personal class="vector-menu mw-portlet mw-portlet-personal" title="User menu">
|
||
<div class=vector-menu-content>
|
||
|
||
<ul class=vector-menu-content-list><li id=pt-createaccount class="user-links-collapsible-item mw-list-item sf-hidden"><li id=pt-login class="user-links-collapsible-item mw-list-item sf-hidden"><li id=pt-darkmode class="ext-darkmode-link mw-list-item"><a href=#><span class="mw-ui-icon mw-ui-icon-bright mw-ui-icon-wikimedia-bright"></span> <span>Dark mode</span></a></ul>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</header>
|
||
<div class=vector-main-menu-container>
|
||
<div id=mw-navigation>
|
||
<nav id=mw-panel class=vector-main-menu-landmark aria-label=Site role=navigation>
|
||
|
||
<div id=vector-main-menu class="vector-main-menu vector-pinnable-element sf-hidden">
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
<div class=vector-sitenotice-container>
|
||
<div id=siteNotice></div>
|
||
</div>
|
||
<input type=checkbox id=vector-toc-collapsed-checkbox class="mw-checkbox-hack-checkbox sf-hidden">
|
||
<nav id=mw-panel-toc role=navigation aria-label=Contents data-event-name=ui.sidebar-toc class="mw-table-of-contents-container vector-toc-landmark">
|
||
<div id=vector-toc-pinned-container class=vector-pinned-container>
|
||
<div id=vector-toc class="vector-toc vector-pinnable-element">
|
||
<div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name=toc-pinned data-pinnable-element-id=vector-toc>
|
||
<h2 class=vector-pinnable-header-label>Contents</h2>
|
||
<button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button sf-hidden" data-event-name=pinnable-header.vector-toc.pin>move to sidebar</button>
|
||
<button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name=pinnable-header.vector-toc.unpin>hide</button>
|
||
</div>
|
||
<ul class=vector-toc-contents id=mw-panel-toc-list>
|
||
<li id=toc-mw-content-text class="vector-toc-list-item vector-toc-level-1 vector-toc-level-1-active vector-toc-list-item-active">
|
||
<a href=# class=vector-toc-link>
|
||
<div class=vector-toc-text>Beginning</div>
|
||
</a>
|
||
</li>
|
||
<li id=toc-Timer_units class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#Timer_units>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>1</span>Timer units</div>
|
||
</a>
|
||
|
||
<ul id=toc-Timer_units-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Service_units class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#Service_units>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>2</span>Service units</div>
|
||
</a>
|
||
|
||
<ul id=toc-Service_units-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Management class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#Management>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>3</span>Management</div>
|
||
</a>
|
||
|
||
<ul id=toc-Management-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Examples class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#Examples>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>4</span>Examples</div>
|
||
</a>
|
||
|
||
<button aria-controls=toc-Examples-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small vector-toc-toggle" aria-expanded=true>
|
||
Toggle Examples subsection
|
||
</button>
|
||
|
||
<ul id=toc-Examples-sublist class=vector-toc-list>
|
||
<li id=toc-Monotonic_timer class="vector-toc-list-item vector-toc-level-2">
|
||
<a class=vector-toc-link href=#Monotonic_timer>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>4.1</span>Monotonic timer</div>
|
||
</a>
|
||
|
||
<ul id=toc-Monotonic_timer-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Realtime_timer class="vector-toc-list-item vector-toc-level-2">
|
||
<a class=vector-toc-link href=#Realtime_timer>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>4.2</span>Realtime timer</div>
|
||
</a>
|
||
|
||
<ul id=toc-Realtime_timer-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Transient_timer_units class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#Transient_timer_units>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>5</span>Transient timer units</div>
|
||
</a>
|
||
|
||
<ul id=toc-Transient_timer_units-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-As_a_cron_replacement class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#As_a_cron_replacement>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>6</span>As a cron replacement</div>
|
||
</a>
|
||
|
||
<button aria-controls=toc-As_a_cron_replacement-sublist class="mw-ui-icon mw-ui-icon-wikimedia-expand mw-ui-icon-small vector-toc-toggle" aria-expanded=true>
|
||
Toggle As a cron replacement subsection
|
||
</button>
|
||
|
||
<ul id=toc-As_a_cron_replacement-sublist class=vector-toc-list>
|
||
<li id=toc-Benefits class="vector-toc-list-item vector-toc-level-2">
|
||
<a class=vector-toc-link href=#Benefits>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>6.1</span>Benefits</div>
|
||
</a>
|
||
|
||
<ul id=toc-Benefits-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Caveats class="vector-toc-list-item vector-toc-level-2">
|
||
<a class=vector-toc-link href=#Caveats>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>6.2</span>Caveats</div>
|
||
</a>
|
||
|
||
<ul id=toc-Caveats-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-MAILTO class="vector-toc-list-item vector-toc-level-2">
|
||
<a class=vector-toc-link href=#MAILTO>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>6.3</span>MAILTO</div>
|
||
</a>
|
||
|
||
<ul id=toc-MAILTO-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Using_a_crontab class="vector-toc-list-item vector-toc-level-2">
|
||
<a class=vector-toc-link href=#Using_a_crontab>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>6.4</span>Using a crontab</div>
|
||
</a>
|
||
|
||
<ul id=toc-Using_a_crontab-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-Manually class="vector-toc-list-item vector-toc-level-2">
|
||
<a class=vector-toc-link href=#Manually>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>6.5</span>Manually</div>
|
||
</a>
|
||
|
||
<ul id=toc-Manually-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li id='toc-Handling_"time_to_live"' class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#Handling_%22time_to_live%22>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>7</span>Handling "time to live"</div>
|
||
</a>
|
||
|
||
<ul id='toc-Handling_"time_to_live"-sublist' class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
<li id=toc-See_also class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded">
|
||
<a class=vector-toc-link href=#See_also>
|
||
<div class=vector-toc-text>
|
||
<span class=vector-toc-numb>8</span>See also</div>
|
||
</a>
|
||
|
||
<ul id=toc-See_also-sublist class=vector-toc-list>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
<div class=mw-content-container>
|
||
<main id=content class=mw-body role=main>
|
||
<header class="mw-body-header vector-page-titlebar">
|
||
<label id=vector-toc-collapsed-button class="mw-ui-button mw-ui-quiet mw-ui-icon mw-ui-icon-flush-left mw-ui-icon-element mw-ui-icon-wikimedia-listBullet mw-checkbox-hack-button sf-hidden" for=vector-toc-collapsed-checkbox role=button aria-controls=toc-toggle-list data-event-name=vector.toc-toggle-list tabindex=0 title="Table of Contents">
|
||
Toggle the table of contents
|
||
</label>
|
||
|
||
<nav role=navigation aria-label=Contents class="vector-toc-landmark sf-hidden">
|
||
|
||
</nav>
|
||
<h1 id=firstHeading class="firstHeading mw-first-heading">systemd/Timers</h1>
|
||
|
||
|
||
<div id=p-lang-btn class="vector-menu vector-dropdown vector-menu-dropdown mw-portlet mw-portlet-lang">
|
||
<input type=checkbox id=p-lang-btn-checkbox role=button aria-haspopup=true data-event-name=ui.dropdown-p-lang-btn class="vector-menu-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 7 languages">
|
||
<label id=p-lang-btn-label for=p-lang-btn-checkbox class="vector-menu-heading mw-ui-button mw-ui-quiet mw-ui-progressive mw-portlet-lang-heading-7" aria-hidden=true>
|
||
<span class="mw-ui-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span>
|
||
<span class=vector-menu-heading-label>7 languages</span>
|
||
</label>
|
||
<div class="vector-menu-content vector-dropdown-content sf-hidden">
|
||
|
||
</div>
|
||
</div>
|
||
</header>
|
||
<div class=vector-page-toolbar>
|
||
<div class=vector-page-toolbar-container>
|
||
<div id=left-navigation>
|
||
<nav aria-label=Namespaces>
|
||
|
||
<div id=p-associated-pages class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages">
|
||
<div class=vector-menu-content>
|
||
|
||
<ul class=vector-menu-content-list>
|
||
<li id=ca-nstab-main class="selected vector-tab-noicon mw-list-item"><a data-mw=interface href=https://wiki.archlinux.org/title/Systemd/Timers title="View the content page [⌃⌥c]" accesskey=c><span>Page</span></a>
|
||
</li>
|
||
<li id=ca-talk class="vector-tab-noicon mw-list-item"><a data-mw=interface href=https://wiki.archlinux.org/title/Talk:Systemd/Timers rel=discussion title="Discussion about the content page [⌃⌥t]" accesskey=t><span>Discussion</span></a>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<div id=p-variants class="vector-menu vector-dropdown vector-menu-dropdown mw-portlet mw-portlet-variants emptyPortlet sf-hidden">
|
||
|
||
|
||
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
<div id=right-navigation class=vector-collapsible>
|
||
<nav aria-label=Views>
|
||
|
||
<div id=p-views class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views">
|
||
<div class=vector-menu-content>
|
||
|
||
<ul class=vector-menu-content-list>
|
||
<li id=ca-view class="selected vector-tab-noicon mw-list-item"><a data-mw=interface href=https://wiki.archlinux.org/title/Systemd/Timers><span>Read</span></a>
|
||
</li>
|
||
<li id=ca-viewsource class="vector-tab-noicon mw-list-item"><a data-mw=interface href="https://wiki.archlinux.org/index.php?title=Systemd/Timers&action=edit" title="This page is protected.
|
||
You can view its source [⌃⌥e]" accesskey=e><span>View source</span></a>
|
||
</li>
|
||
<li id=ca-history class="vector-tab-noicon mw-list-item"><a data-mw=interface href="https://wiki.archlinux.org/index.php?title=Systemd/Timers&action=history" title="Past revisions of this page [⌃⌥h]" accesskey=h><span>View history</span></a>
|
||
</li>
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
|
||
<nav class=vector-page-tools-landmark aria-label="More options">
|
||
|
||
<div id=p-cactions class="vector-menu vector-dropdown vector-menu-dropdown mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items sf-hidden" title="More options">
|
||
|
||
|
||
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div id=bodyContent class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby=firstHeading data-mw-ve-target-container>
|
||
<div class=vector-body-before-content>
|
||
<div class=mw-indicators>
|
||
</div>
|
||
<div id=siteSub class="noprint sf-hidden">From ArchWiki</div>
|
||
</div>
|
||
<div id=contentSub><div id=mw-content-subtitle><div class=subpages>< <a href=https://wiki.archlinux.org/title/Systemd title=Systemd>Systemd</a></div></div></div>
|
||
|
||
|
||
<div id=mw-content-text class="mw-body-content mw-content-ltr" lang=en dir=ltr><div class=mw-parser-output><p><span>
|
||
</span>
|
||
</p>
|
||
<div class=archwiki-template-meta-related-articles><p>Related articles<ul>
|
||
<li><a href=https://wiki.archlinux.org/title/Systemd title=Systemd>systemd</a></li>
|
||
<li><a href=https://wiki.archlinux.org/title/Systemd/User title=Systemd/User>systemd/User</a></li>
|
||
<li><a href=https://wiki.archlinux.org/title/Systemd_FAQ class=mw-redirect title="Systemd FAQ">systemd FAQ</a></li>
|
||
<li><a href=https://wiki.archlinux.org/title/Cron title=Cron>cron</a></li>
|
||
</ul></div>
|
||
<p>Timers are <a href=https://wiki.archlinux.org/title/Systemd title=Systemd>systemd</a> unit files whose name ends in <i>.timer</i> that control <i>.service</i> files or events. Timers can be used as an alternative to <a href=https://wiki.archlinux.org/title/Cron title=Cron>cron</a> (read <a href=#As_a_cron_replacement>#As a cron replacement</a>). Timers have built-in support for calendar time events, monotonic time events, and can be run asynchronously.
|
||
</p>
|
||
<h2><span class=mw-headline id=Timer_units>Timer units</span></h2>
|
||
<p>Timers are <i>systemd</i> unit files with a suffix of <i>.timer</i>. Timers are like other <a href=https://wiki.archlinux.org/title/Systemd#Writing_unit_files title=Systemd>unit configuration files</a> and are loaded from the same paths but include a <code>[Timer]</code> section which defines when and how the timer activates. Timers are defined as one of two types:
|
||
</p>
|
||
<ul><li><b>Realtime timers</b> (a.k.a. wallclock timers) activate on a calendar event, the same way that cronjobs do. The option <code>OnCalendar=</code> is used to define them.</li>
|
||
<li><b>Monotonic timers</b> activate after a time span relative to a varying starting point. They stop if the computer is temporarily suspended or shut down. There are number of different monotonic timers but all have the form: <code>On<i>Type</i>Sec=</code>. Common monotonic timers include <code>OnBootSec</code> and <code>OnUnitActiveSec</code>.</ul>
|
||
<p>For a full explanation of timer options, see the <span class="plainlinks archwiki-template-man" title="$ man 5 systemd.timer"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.timer.5>systemd.timer(5)</a></span>. The argument syntax for calendar events and time spans is defined in <span class="plainlinks archwiki-template-man" title="$ man 7 systemd.time"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.time.7>systemd.time(7)</a></span>.
|
||
</p>
|
||
<div class="archwiki-template-box archwiki-template-box-note"><strong>Note:</strong> <i>systemd</i> offers the target <code>timers.target</code> which sets up all timers that should be active after boot (see <span class="plainlinks archwiki-template-man" title="$ man 7 systemd.special"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.special.7>systemd.special(7)</a></span> for details). To use it, add <code>WantedBy=timers.target</code> to the <code>[Install]</code> section of your timer and <a href=https://wiki.archlinux.org/title/Enable class=mw-redirect title=Enable>enable</a> the timer unit.</div>
|
||
<h2><span class=mw-headline id=Service_units>Service units</span></h2>
|
||
<p>For each <i>.timer</i> file, a matching <i>.service</i> file exists (e.g. <code>foo.timer</code> and <code>foo.service</code>). The <i>.timer</i> file activates and controls the <i>.service</i> file. The <i>.service</i> does not require an <code>[Install]</code> section as it is the <i>timer</i> units that are enabled. If necessary, it is possible to control a differently-named unit using the <code>Unit=</code> option in the timer's <code>[Timer]</code> section.
|
||
</p>
|
||
<h2><span class=mw-headline id=Management>Management</span></h2>
|
||
<p>To use a <i>timer</i> unit <a href=https://wiki.archlinux.org/title/Enable class=mw-redirect title=Enable>enable</a> and <a href=https://wiki.archlinux.org/title/Start class=mw-redirect title=Start>start</a> it like any other unit (remember to add the <i>.timer</i> suffix). To view all started timers, run:
|
||
</p>
|
||
<pre style=margin-bottom:0;border-bottom:none;padding-bottom:0.8em>$ systemctl list-timers</pre>
|
||
<pre style=margin-top:0;border-top-style:dashed;padding-top:0.8em>NEXT LEFT LAST PASSED UNIT ACTIVATES
|
||
Thu 2014-07-10 19:37:03 CEST 11h left Wed 2014-07-09 19:37:03 CEST 12h ago systemd-tmpfiles-clean.timer systemd-tmpfiles-clean.service
|
||
Fri 2014-07-11 00:00:00 CEST 15h left Thu 2014-07-10 00:00:13 CEST 8h ago logrotate.timer logrotate.service
|
||
</pre>
|
||
<div class="archwiki-template-box archwiki-template-box-note"><strong>Note:</strong>
|
||
<ul><li>To list all timers (including inactive), use <code>systemctl list-timers --all</code>.</li>
|
||
<li>The status of a service started by a timer will likely be inactive unless it is currently being triggered.</li>
|
||
<li>If a timer gets out of sync, it may help to delete its <code>stamp-*</code> file in <code>/var/lib/systemd/timers</code> (or <code>~/.local/share/systemd/</code> in case of user timers). These are zero length files which mark the last time each timer was run. If deleted, they will be reconstructed on the next start of their timer.</ul></div>
|
||
<h2><span class=mw-headline id=Examples>Examples</span></h2>
|
||
<p>A service unit file can be scheduled with a timer out-of-the-box. The following examples schedule <code>foo.service</code> to be run with a corresponding timer called <code>foo.timer</code>.
|
||
</p>
|
||
<h3><span class=mw-headline id=Monotonic_timer>Monotonic timer</span></h3>
|
||
<p>A timer which will start 15 minutes after boot and again every week while the system is running.
|
||
</p>
|
||
<pre style=margin-bottom:0;border-bottom:none;padding-bottom:0.8em>/etc/systemd/system/foo.timer</pre>
|
||
<pre style=margin-top:0;border-top-style:dashed;padding-top:0.8em>[Unit]
|
||
Description=Run foo weekly and on boot
|
||
|
||
[Timer]
|
||
OnBootSec=15min
|
||
OnUnitActiveSec=1w
|
||
|
||
[Install]
|
||
WantedBy=timers.target
|
||
</pre>
|
||
<h3><span class=mw-headline id=Realtime_timer>Realtime timer</span></h3>
|
||
<p>A timer which starts once a week (at 12:00am on Monday). When activated, it triggers the service immediately if it missed the last start time (option <code>Persistent=true</code>), for example due to the system being powered off:
|
||
</p>
|
||
<pre style=margin-bottom:0;border-bottom:none;padding-bottom:0.8em>/etc/systemd/system/foo.timer</pre>
|
||
<pre style=margin-top:0;border-top-style:dashed;padding-top:0.8em>[Unit]
|
||
Description=Run foo weekly
|
||
|
||
[Timer]
|
||
OnCalendar=weekly
|
||
Persistent=true
|
||
|
||
[Install]
|
||
WantedBy=timers.target</pre>
|
||
<p>When more specific dates and times are required, <code>OnCalendar</code> events uses the following format:
|
||
</p>
|
||
<pre>DayOfWeek Year-Month-Day Hour:Minute:Second
|
||
</pre>
|
||
<p>An asterisk may be used to specify any value and commas may be used to list possible values. Two values separated by <code>..</code> indicate a contiguous range.
|
||
<p>In the below example the service is run the first four days of each month at 12:00 PM, but <i>only</i> if that day is a Monday or a Tuesday.
|
||
</p>
|
||
<pre>OnCalendar=Mon,Tue *-*-01..04 12:00:00
|
||
</pre>
|
||
<p>To run a service on the first Saturday of every month, use:
|
||
</p>
|
||
<pre>OnCalendar=Sat *-*-1..7 18:00:00
|
||
</pre>
|
||
<p>When using the <code>DayOfWeek</code> part, at least one weekday has to be specified. If you want something to run every day at 4am, use:
|
||
</p>
|
||
<pre>OnCalendar=*-*-* 4:00:00
|
||
</pre>
|
||
<p>To run a service at different times, <code>OnCalendar</code> may be specified more than once. In the example below, the service runs at 22:30 on weekdays and at 20:00 on weekends.
|
||
</p>
|
||
<pre>OnCalendar=Mon..Fri 22:30
|
||
OnCalendar=Sat,Sun 20:00
|
||
</pre>
|
||
<p>You can also specify a timezone at the end of the directive (use <code>timedatectl list-timezones</code> to list accepted values)
|
||
</p>
|
||
<pre>OnCalendar=*-*-* 02:00:00 Europe/Paris
|
||
</pre>
|
||
<p>More information is available in <span class="plainlinks archwiki-template-man" title="$ man 7 systemd.time"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.time.7>systemd.time(7)</a></span>.
|
||
</p>
|
||
<div class="archwiki-template-box archwiki-template-box-tip"><strong>Tip:</strong>
|
||
<ul><li><code>OnCalendar</code> time specifications can be tested in order to verify their validity and to calculate the next time the condition would elapse when used on a timer unit file with the <code>calendar</code> option of the <i>systemd-analyze</i> utility. For example, one can use <code>systemd-analyze calendar weekly</code> or <code>systemd-analyze calendar "Mon,Tue *-*-01..04 12:00:00"</code>. Add <code>--iterations=N</code> to ask for more iterations to be printed.</li>
|
||
<li>The <code>faketime</code> command is especially useful to test various scenarios with the above command; it comes with the <span class="plainlinks archwiki-template-pkg"><a rel=nofollow class="external text" href="https://archlinux.org/packages/?name=libfaketime">libfaketime</a></span> package.</li>
|
||
<li>Special event expressions like <code>daily</code> and <code>weekly</code> refer to <i>specific start times</i> and thus any timers sharing such calendar events will start simultaneously. Timers sharing start events can cause poor system performance if the timers' services compete for system resources. The <code>RandomizedDelaySec</code> option in the <code>[Timer]</code> section avoids this problem by randomly staggering the start time of each timer. See <span class="plainlinks archwiki-template-man" title="$ man 5 systemd.timer"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.timer.5>systemd.timer(5)</a></span>.</li>
|
||
<li>Add the option <code>AccuracySec=1us</code> to the <code>[Timer]</code> section, to avoid the inaccuracy of the <i>1m</i> default value of <code>AccuracySec</code>. Also see <span class="plainlinks archwiki-template-man" title="$ man 5 systemd.timer"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.timer.5>systemd.timer(5)</a></span>.</li>
|
||
<li>Some options (<code>WakeSystem</code>) may require specific system capabilities and prevent a timer from starting, resulting in the following error messages: "Failed to enter waiting state: Operation not supported" and "Failed with result 'resources'.".</ul>
|
||
</div>
|
||
<h2><span class=mw-headline id=Transient_timer_units>Transient timer units</span></h2>
|
||
<p>One can use <code>systemd-run</code> to create transient <i>.timer</i> units. That is, one can set a command to run at a specified time without having a service file. For example the following command touches a file after 30 seconds:
|
||
</p>
|
||
<pre># systemd-run --on-active=30 /bin/touch /tmp/foo
|
||
</pre>
|
||
<p>One can also specify a pre-existing service file that does not have a timer file. For example, the following starts the systemd unit named <code><i>someunit</i>.service</code> after 12.5 hours have elapsed:
|
||
</p>
|
||
<pre># systemd-run --on-active="12h 30m" --unit <i>someunit</i>.service
|
||
</pre>
|
||
<p>See <span class="plainlinks archwiki-template-man" title="$ man 1 systemd-run"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd-run.1>systemd-run(1)</a></span> for more information and examples.
|
||
</p>
|
||
<h2><span class=mw-headline id=As_a_cron_replacement>As a cron replacement</span></h2>
|
||
<p>Although <a href=https://wiki.archlinux.org/title/Cron title=Cron>cron</a> is arguably the most well-known job scheduler, <i>systemd</i> timers can be an alternative.
|
||
</p>
|
||
<h3><span class=mw-headline id=Benefits>Benefits</span></h3>
|
||
<p>The main benefits of using timers come from each job having its own <i>systemd</i> service. Some of these benefits are:
|
||
</p>
|
||
<ul><li>Jobs can be easily started independently of their timers. This simplifies debugging.</li>
|
||
<li>Each job can be configured to run in a specific environment (see <span class="plainlinks archwiki-template-man" title="$ man 5 systemd.exec"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.exec.5>systemd.exec(5)</a></span>).</li>
|
||
<li>Jobs can be attached to <a href=https://wiki.archlinux.org/title/Cgroups title=Cgroups>cgroups</a>.</li>
|
||
<li>Jobs can be set up to depend on other <i>systemd</i> units.</li>
|
||
<li>Jobs are logged in the <i>systemd</i> journal for easy debugging.</ul>
|
||
<h3><span class=mw-headline id=Caveats>Caveats</span></h3>
|
||
<p>Some things that are easy to do with cron are difficult to do with timer units alone:
|
||
</p>
|
||
<ul><li>Creation: to set up a timed job with <i>systemd</i> you need to create two files and run <code>systemctl</code> commands, compared to adding a single line to a crontab.</li>
|
||
<li>Emails: there is no built-in equivalent to cron's <code>MAILTO</code> for sending emails on job failure. See <a href=#MAILTO>#MAILTO</a> for an example of setting up a similar functionality using <code>OnFailure=</code>.</ul>
|
||
<p>Also note that <a href=https://wiki.archlinux.org/title/Systemd/User title=Systemd/User>user</a> timer units will only run during an active user login session by default. However, <a href=https://wiki.archlinux.org/title/Systemd/User#Automatic_start-up_of_systemd_user_instances title=Systemd/User>lingering</a> can enable services to run at boot even when the user has no active login session.
|
||
</p>
|
||
<h3><span class=mw-headline id=MAILTO>MAILTO</span></h3>
|
||
<div class="noprint archwiki-template-message">
|
||
<p><span class=mw-default-size typeof=mw:File><a href=https://wiki.archlinux.org/title/File:Merge-arrows-2.svg class=mw-file-description><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjM2IiBoZWlnaHQ9IjQwIiB2ZXJzaW9uPSIxLjAiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJhIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMWM4OGVkIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYiI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2VkMWMyNCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgeGxpbms6aHJlZj0iI2EiIGlkPSJjIiB4MT0iMjEuOTA5NzAyIiB4Mj0iMzcuMjgzNjM0IiB5MT0iMTQuODc3NDQ3IiB5Mj0iLS40OTY0ODU3NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAzNi4wNDY4NzUgMTguNDA2MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIvPgogICAgPGxpbmVhckdyYWRpZW50IHhsaW5rOmhyZWY9IiNiIiBpZD0iZCIgeDE9IjIxLjkwOTcwMiIgeDI9IjM3LjI4MzYzNCIgeTE9IjE0Ljg3NzQ0NyIgeTI9Ii0uNDk2NDg1NzQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIi8+CiAgPC9kZWZzPgogIDxnIHN0cm9rZS13aWR0aD0iMS4wNTQzOTg0MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLjkwNjQyNzcgMS4wMzEwMzI5KSBzY2FsZSguOTQ4NCkiPgogICAgPHBhdGggZmlsbD0idXJsKCNjKSIgc3Ryb2tlPSIjMGM1OGEwIiBkPSJNMTQuMjAzMTI1IDE4LjY1NjI1VjI1aDIxLjI4MTI1djguNDA2MjVoLTIxLjI4MTI1djYuMzEyNUwuNTE1NjI1IDI5LjE4NzVsMTMuNjg3NS0xMC41MzEyNXoiLz4KICAgIDxwYXRoIGZpbGw9InVybCgjZCkiIHN0cm9rZT0iI2EwMGMxMiIgZD0iTTIxLjg0Mzc1LjI1djYuMzQzNzVILjU2MjVWMTVoMjEuMjgxMjV2Ni4zMTI1bDEzLjY4NzUtMTAuNTMxMjVMMjEuODQzNzUuMjV6Ii8+CiAgPC9nPgo8L3N2Zz4=" decoding=async width=36 height=40></a></span><b>This article or section is a candidate for merging with <a href=https://wiki.archlinux.org/title/Systemd#Notifying_about_failed_services title=Systemd>systemd#Notifying about failed services</a>.</b><span class=mw-default-size typeof=mw:File><a href=https://wiki.archlinux.org/title/File:Merge-arrows-2.svg class=mw-file-description><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjM2IiBoZWlnaHQ9IjQwIiB2ZXJzaW9uPSIxLjAiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJhIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMWM4OGVkIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYiI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2VkMWMyNCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgeGxpbms6aHJlZj0iI2EiIGlkPSJjIiB4MT0iMjEuOTA5NzAyIiB4Mj0iMzcuMjgzNjM0IiB5MT0iMTQuODc3NDQ3IiB5Mj0iLS40OTY0ODU3NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAzNi4wNDY4NzUgMTguNDA2MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIvPgogICAgPGxpbmVhckdyYWRpZW50IHhsaW5rOmhyZWY9IiNiIiBpZD0iZCIgeDE9IjIxLjkwOTcwMiIgeDI9IjM3LjI4MzYzNCIgeTE9IjE0Ljg3NzQ0NyIgeTI9Ii0uNDk2NDg1NzQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIi8+CiAgPC9kZWZzPgogIDxnIHN0cm9rZS13aWR0aD0iMS4wNTQzOTg0MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLjkwNjQyNzcgMS4wMzEwMzI5KSBzY2FsZSguOTQ4NCkiPgogICAgPHBhdGggZmlsbD0idXJsKCNjKSIgc3Ryb2tlPSIjMGM1OGEwIiBkPSJNMTQuMjAzMTI1IDE4LjY1NjI1VjI1aDIxLjI4MTI1djguNDA2MjVoLTIxLjI4MTI1djYuMzEyNUwuNTE1NjI1IDI5LjE4NzVsMTMuNjg3NS0xMC41MzEyNXoiLz4KICAgIDxwYXRoIGZpbGw9InVybCgjZCkiIHN0cm9rZT0iI2EwMGMxMiIgZD0iTTIxLjg0Mzc1LjI1djYuMzQzNzVILjU2MjVWMTVoMjEuMjgxMjV2Ni4zMTI1bDEzLjY4NzUtMTAuNTMxMjVMMjEuODQzNzUuMjV6Ii8+CiAgPC9nPgo8L3N2Zz4=" decoding=async width=36 height=40></a></span></p>
|
||
<div><b>Notes:</b> Same topic, different solution. (Discuss in <a rel=nofollow class="external text" href=https://wiki.archlinux.org/title/Talk:Systemd/Timers>Talk:Systemd/Timers</a>)</div>
|
||
</div>
|
||
<p>You can set up systemd to send an e-mail when a unit fails. Cron sends mail to <code>MAILTO</code> if the job outputs to stdout or stderr, but many jobs are setup to only output on error. First you need two files: an executable for sending the mail and a <i>.service</i> for starting the executable. For this example, the executable is just a shell script using <code>sendmail</code>, which is in packages that provide <code>smtp-forwarder</code>.
|
||
</p>
|
||
<pre style=margin-bottom:0;border-bottom:none;padding-bottom:0.8em>/usr/local/bin/systemd-email</pre>
|
||
<pre style=margin-top:0;border-top-style:dashed;padding-top:0.8em>#!/bin/sh
|
||
|
||
/usr/bin/sendmail -t <<ERRMAIL
|
||
To: $1
|
||
From: systemd <root@$HOSTNAME>
|
||
Subject: $2
|
||
Content-Transfer-Encoding: 8bit
|
||
Content-Type: text/plain; charset=UTF-8
|
||
|
||
$(systemctl status --full "$2")
|
||
ERRMAIL
|
||
</pre>
|
||
<p>Whatever executable you use, it should probably take at least two arguments as this shell script does: the address to send to and the unit file to get the status of. The <i>.service</i> we create will pass these arguments:
|
||
</p>
|
||
<pre style=margin-bottom:0;border-bottom:none;padding-bottom:0.8em>/etc/systemd/system/status_email_<i>user</i>@.service</pre>
|
||
<pre style=margin-top:0;border-top-style:dashed;padding-top:0.8em>[Unit]
|
||
Description=status email for %i to <i>user</i>
|
||
|
||
[Service]
|
||
Type=oneshot
|
||
ExecStart=/usr/local/bin/systemd-email <i>address</i> %i
|
||
User=nobody
|
||
Group=systemd-journal</pre>
|
||
<p>Where <code><i>user</i></code> is the user being emailed and <code><i>address</i></code> is that user's email address. Although the recipient is hard-coded, the unit file to report on is passed as an instance parameter, so this one service can send email for many other units. At this point you can <a href=https://wiki.archlinux.org/title/Start class=mw-redirect title=Start>start</a> <code>status_email_<i>user</i>@dbus.service</code> to verify that you can receive the emails.
|
||
<p>Then simply <a href=https://wiki.archlinux.org/title/Edit class=mw-redirect title=Edit>edit</a> the service you want emails for and add <code>OnFailure=status_email_<i>user</i>@%n.service</code> to the <code>[Unit]</code> section. <code>%n</code> passes the unit's name to the template.
|
||
</p>
|
||
<div class="archwiki-template-box archwiki-template-box-note"><strong>Note:</strong>
|
||
<ul><li>If you set up sSMTP security according to <a href=https://wiki.archlinux.org/title/SSMTP#Security title=SSMTP>sSMTP#Security</a> the user <code>nobody</code> will not have access to <code>/etc/ssmtp/ssmtp.conf</code>, and the <code>systemctl start status_email_<i>user</i>@dbus.service</code> command will fail. One solution is to use <code>root</code> as the User in the <code>status_email_<i>user</i>@.service</code> unit.</li>
|
||
<li>If you try to use <code>mail -s somelogs <i>address</i></code> in your email script, <code>mail</code> will fork and systemd will kill the mail process when it sees your script exit. Make the mail non-forking by doing <code>mail -Ssendwait -s somelogs <i>address</i></code>.</ul>
|
||
</div>
|
||
<div class="archwiki-template-box archwiki-template-box-tip"><strong>Tip:</strong> Newer versions of systemd recommend using <code>DynamicUser=true</code> as a replacement for <code>User=nobody</code> which is now discouraged. See <a rel=nofollow class="external text" href=https://github.com/v2fly/v2ray-core/issues/428>GitHub issue 428</a> for more details.</div>
|
||
<div class="noprint archwiki-template-message">
|
||
<p><span class=mw-default-size typeof=mw:File><a href=https://wiki.archlinux.org/title/File:Merge-arrows-2.svg class=mw-file-description><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjM2IiBoZWlnaHQ9IjQwIiB2ZXJzaW9uPSIxLjAiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJhIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMWM4OGVkIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYiI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2VkMWMyNCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgeGxpbms6aHJlZj0iI2EiIGlkPSJjIiB4MT0iMjEuOTA5NzAyIiB4Mj0iMzcuMjgzNjM0IiB5MT0iMTQuODc3NDQ3IiB5Mj0iLS40OTY0ODU3NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAzNi4wNDY4NzUgMTguNDA2MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIvPgogICAgPGxpbmVhckdyYWRpZW50IHhsaW5rOmhyZWY9IiNiIiBpZD0iZCIgeDE9IjIxLjkwOTcwMiIgeDI9IjM3LjI4MzYzNCIgeTE9IjE0Ljg3NzQ0NyIgeTI9Ii0uNDk2NDg1NzQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIi8+CiAgPC9kZWZzPgogIDxnIHN0cm9rZS13aWR0aD0iMS4wNTQzOTg0MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLjkwNjQyNzcgMS4wMzEwMzI5KSBzY2FsZSguOTQ4NCkiPgogICAgPHBhdGggZmlsbD0idXJsKCNjKSIgc3Ryb2tlPSIjMGM1OGEwIiBkPSJNMTQuMjAzMTI1IDE4LjY1NjI1VjI1aDIxLjI4MTI1djguNDA2MjVoLTIxLjI4MTI1djYuMzEyNUwuNTE1NjI1IDI5LjE4NzVsMTMuNjg3NS0xMC41MzEyNXoiLz4KICAgIDxwYXRoIGZpbGw9InVybCgjZCkiIHN0cm9rZT0iI2EwMGMxMiIgZD0iTTIxLjg0Mzc1LjI1djYuMzQzNzVILjU2MjVWMTVoMjEuMjgxMjV2Ni4zMTI1bDEzLjY4NzUtMTAuNTMxMjVMMjEuODQzNzUuMjV6Ii8+CiAgPC9nPgo8L3N2Zz4=" decoding=async width=36 height=40></a></span><b>This article or section is a candidate for merging with <a href=https://wiki.archlinux.org/title/Drop-in_snippet class=mw-redirect title="Drop-in snippet">drop-in snippet</a>.</b><span class=mw-default-size typeof=mw:File><a href=https://wiki.archlinux.org/title/File:Merge-arrows-2.svg class=mw-file-description><img src="data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgd2lkdGg9IjM2IiBoZWlnaHQ9IjQwIiB2ZXJzaW9uPSIxLjAiPgogIDxkZWZzPgogICAgPGxpbmVhckdyYWRpZW50IGlkPSJhIj4KICAgICAgPHN0b3Agb2Zmc2V0PSIwIiBzdG9wLWNvbG9yPSIjMWM4OGVkIi8+CiAgICAgIDxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iI2ZmZiIvPgogICAgPC9saW5lYXJHcmFkaWVudD4KICAgIDxsaW5lYXJHcmFkaWVudCBpZD0iYiI+CiAgICAgIDxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iI2VkMWMyNCIvPgogICAgICA8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNmZmYiLz4KICAgIDwvbGluZWFyR3JhZGllbnQ+CiAgICA8bGluZWFyR3JhZGllbnQgeGxpbms6aHJlZj0iI2EiIGlkPSJjIiB4MT0iMjEuOTA5NzAyIiB4Mj0iMzcuMjgzNjM0IiB5MT0iMTQuODc3NDQ3IiB5Mj0iLS40OTY0ODU3NCIgZ3JhZGllbnRUcmFuc2Zvcm09Im1hdHJpeCgtMSAwIDAgMSAzNi4wNDY4NzUgMTguNDA2MjUpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIvPgogICAgPGxpbmVhckdyYWRpZW50IHhsaW5rOmhyZWY9IiNiIiBpZD0iZCIgeDE9IjIxLjkwOTcwMiIgeDI9IjM3LjI4MzYzNCIgeTE9IjE0Ljg3NzQ0NyIgeTI9Ii0uNDk2NDg1NzQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIi8+CiAgPC9kZWZzPgogIDxnIHN0cm9rZS13aWR0aD0iMS4wNTQzOTg0MiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoLjkwNjQyNzcgMS4wMzEwMzI5KSBzY2FsZSguOTQ4NCkiPgogICAgPHBhdGggZmlsbD0idXJsKCNjKSIgc3Ryb2tlPSIjMGM1OGEwIiBkPSJNMTQuMjAzMTI1IDE4LjY1NjI1VjI1aDIxLjI4MTI1djguNDA2MjVoLTIxLjI4MTI1djYuMzEyNUwuNTE1NjI1IDI5LjE4NzVsMTMuNjg3NS0xMC41MzEyNXoiLz4KICAgIDxwYXRoIGZpbGw9InVybCgjZCkiIHN0cm9rZT0iI2EwMGMxMiIgZD0iTTIxLjg0Mzc1LjI1djYuMzQzNzVILjU2MjVWMTVoMjEuMjgxMjV2Ni4zMTI1bDEzLjY4NzUtMTAuNTMxMjVMMjEuODQzNzUuMjV6Ii8+CiAgPC9nPgo8L3N2Zz4=" decoding=async width=36 height=40></a></span></p>
|
||
<div><b>Notes:</b> This is a great tip that would benefit more people on the dedicated page. (Discuss in <a rel=nofollow class="external text" href=https://wiki.archlinux.org/title/Talk:Systemd/Timers>Talk:Systemd/Timers</a>)</div>
|
||
</div>
|
||
<p>Note that systemd also allows to set top level per-type drop-ins, to change some aspect of all units of a given type (e.g. <code>service</code>) by creating a file like <code>/etc/systemd/system/service.d/someName.conf</code>, which could set <code>OnFailure</code> for e.g. all services.
|
||
</p>
|
||
<h3><span class=mw-headline id=Using_a_crontab>Using a crontab</span></h3>
|
||
<p>Several of the caveats can be worked around by installing a package that parses a traditional crontab to configure the timers, like <span class="plainlinks archwiki-template-pkg"><a rel=nofollow class="external text" href=https://aur.archlinux.org/packages/systemd-cron/>systemd-cron</a></span><sup><small>AUR</small></sup>. It can provide the missing <code>MAILTO</code> feature.
|
||
<p>Also, like with crontabs, a unified view of all scheduled jobs can be obtained with <code>systemctl</code>. See <a href=#Management>#Management</a>.
|
||
</p>
|
||
<h3><span class=mw-headline id=Manually>Manually</span></h3>
|
||
<p>Outside of migrating from an existing crontab, using the same periodicity as cron can be desired. To avoid the tedious task of creating a timer for each service to start periodically, use a <a href=https://wiki.archlinux.org/title/Systemd#Using_units title=Systemd>template unit</a>, for example:
|
||
</p>
|
||
<pre style=margin-bottom:0;border-bottom:none;padding-bottom:0.8em>/etc/systemd/system/monthly@.timer</pre>
|
||
<pre style=margin-top:0;border-top-style:dashed;padding-top:0.8em>[Unit]
|
||
Description=Monthly Timer for %i service
|
||
|
||
[Timer]
|
||
OnCalendar=*-*-1 02:00:00
|
||
AccuracySec=6h
|
||
RandomizedDelaySec=1h
|
||
Persistent=true
|
||
Unit=%i.service
|
||
|
||
[Install]
|
||
WantedBy=default.target</pre>
|
||
<div class="archwiki-template-box archwiki-template-box-note"><strong>Note:</strong> See <span class="plainlinks archwiki-template-man" title="$ man 5 systemd.timer"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.timer.5#OPTIONS>systemd.timer(5) § OPTIONS</a></span> for the importance of using <code>RandomizedDelaySec</code> and not only <code>AccuracySec</code> to avoid all units started by the timer firing at once.</div>
|
||
<p>Then one only needs to <a href=https://wiki.archlinux.org/title/Enable/start class=mw-redirect title=Enable/start>enable/start</a> <code>monthly@<i>unit_name</i>.timer</code>.
|
||
</p>
|
||
<div class="archwiki-template-box archwiki-template-box-tip"><strong>Tip:</strong> The template units can be nested, e.g. one could <a href=https://wiki.archlinux.org/title/Enable/start class=mw-redirect title=Enable/start>enable/start</a> <code>monthly@btrfs-scrub@mnt-$(systemd-escape bbb76c63-e4ac-4e39-8897-a120c5d30686).timer</code>.</div>
|
||
<h2><span id=Handling_.22time_to_live.22></span><span class=mw-headline id='Handling_"time_to_live"'>Handling "time to live"</span></h2>
|
||
<p>Some software will track the time elapsed since they last ran, for example blocking the update of a database if the last download ended less than 24 hours ago.
|
||
<p>By default, timers do not track when the task they launched has ended. To work around this, we can use <code>OnUnitInactiveSeconds</code>:
|
||
</p>
|
||
<pre style=margin-bottom:0;border-bottom:none;padding-bottom:0.8em>/etc/systemd/system/daily-inactive@.timer</pre>
|
||
<pre style=margin-top:0;border-top-style:dashed;padding-top:0.8em>[Unit]
|
||
Description=Launch %i service 24hours after it deactivated
|
||
|
||
[Timer]
|
||
<b>OnUnitInactiveSec=1day1sec</b>
|
||
Unit=%i.service
|
||
Persistent=true
|
||
|
||
[Install]
|
||
WantedBy=default.target</pre>
|
||
<div class="archwiki-template-box archwiki-template-box-tip"><strong>Tip:</strong> With <code>Restart=on-failure</code> along with <code>RestartSec</code>, it is possible to have a unit rerun after failure and success according to different schedules, see <span class="plainlinks archwiki-template-man" title="$ man 5 systemd.service"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.service.5#OPTIONS>systemd.service(5) § OPTIONS</a></span>.</div>
|
||
<h2><span class=mw-headline id=See_also>See also</span></h2>
|
||
<ul><li><span class="plainlinks archwiki-template-man" title="$ man 5 systemd.timer"><a rel=nofollow class="external text" href=https://man.archlinux.org/man/systemd.timer.5>systemd.timer(5)</a></span></li>
|
||
<li><a href=https://fedoraproject.org/wiki/Features/SystemdCalendarTimers class=extiw title=fedora:Features/SystemdCalendarTimers>Fedora:Features/SystemdCalendarTimers</a></li>
|
||
<li><a href=https://wiki.gentoo.org/wiki/Systemd#Timer_services class=extiw title=gentoo:Systemd>Gentoo:Systemd#Timer services</a></li>
|
||
<li><b>systemd-cron</b> — provides systemd units to run cron scripts; using <i>systemd-crontab-generator</i> to convert crontabs</ul>
|
||
<dl><dd><a rel=nofollow class="external free" href=https://github.com/systemd-cron/systemd-cron>https://github.com/systemd-cron/systemd-cron</a> || <span class="plainlinks archwiki-template-pkg"><a rel=nofollow class="external text" href=https://aur.archlinux.org/packages/systemd-cron/>systemd-cron</a></span><sup><small>AUR</small></sup></dl>
|
||
<ul><li><a rel=nofollow class="external text" href=https://fedoramagazine.org/systemd-timers-for-scheduling-tasks/>Systemd Timers for Scheduling Tasks</a></ul>
|
||
</div>
|
||
<div class="printfooter sf-hidden" data-nosnippet>Retrieved from ""</div></div>
|
||
<div id=catlinks class=catlinks data-mw=interface><div id=mw-normal-catlinks class=mw-normal-catlinks><a href=https://wiki.archlinux.org/title/Special:Categories title=Special:Categories>Category</a>: <ul><li><a href=https://wiki.archlinux.org/title/Category:System_administration title="Category:System administration">System administration</a></ul></div><div id=mw-hidden-catlinks class="mw-hidden-catlinks mw-hidden-cats-hidden sf-hidden">Hidden category: </div></div>
|
||
|
||
</div>
|
||
|
||
</main>
|
||
|
||
</div>
|
||
<div class=mw-footer-container>
|
||
|
||
<footer id=footer class=mw-footer role=contentinfo>
|
||
<ul id=footer-info>
|
||
<li id=footer-info-lastmod> This page was last edited on 3 December 2023, at 08:08.</li>
|
||
<li id=footer-info-copyright>Content is available under <a class=external rel=nofollow href=https://www.gnu.org/copyleft/fdl.html>GNU Free Documentation License 1.3 or later</a> unless otherwise noted.</li>
|
||
</ul>
|
||
<ul id=footer-places>
|
||
<li id=footer-places-privacy><a href=https://terms.archlinux.org/docs/privacy-policy/>Privacy policy</a></li>
|
||
<li id=footer-places-about><a href=https://wiki.archlinux.org/title/ArchWiki:About>About ArchWiki</a></li>
|
||
<li id=footer-places-disclaimers><a href=https://wiki.archlinux.org/title/ArchWiki:General_disclaimer>Disclaimers</a></li>
|
||
</ul>
|
||
<ul id=footer-icons class="noprint sf-hidden">
|
||
|
||
|
||
</ul>
|
||
</footer>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<button title="Toggle limited content width" aria-hidden=true class="mw-ui-icon mw-ui-icon-element mw-ui-button vector-limited-width-toggle" data-event-name=limited-width-toggle-off>Toggle limited content width</button><div id=p-namespaces style=display:none></div></body><!-- Cached/compressed 20231205041913 --> |