Editing Talk:1728: Cron Mail

Jump to: navigation, search
Ambox notice.png Please sign your posts with ~~~~

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.
Latest revision Your text
Line 7: Line 7:
 
:On my Mint/Ubuntu/Debian-based Linux system, adding junk to /etc/crontab put a message is /var/log/syslog about "cron[1495]: (*system*) ERROR (Syntax error, this crontab file will be ignored)".  So it looks like appending garbage to the crontab will just break cron entirely (or at least those handled by /etc/crontab; it may be private cron and /etc/cron.d/* jobs may continue to run, but cron.hourly, cron.daily, and cron.weekly jobs on my system are initiated through /etc/crontab so they would not run with a broken /etc/crontab).  I don't know if other non-Debian distributions have a cron that behaves differently, however. [[User:N0lqu|-boB]] ([[User talk:N0lqu|talk]]) 15:18, 2 September 2016 (UTC)
 
:On my Mint/Ubuntu/Debian-based Linux system, adding junk to /etc/crontab put a message is /var/log/syslog about "cron[1495]: (*system*) ERROR (Syntax error, this crontab file will be ignored)".  So it looks like appending garbage to the crontab will just break cron entirely (or at least those handled by /etc/crontab; it may be private cron and /etc/cron.d/* jobs may continue to run, but cron.hourly, cron.daily, and cron.weekly jobs on my system are initiated through /etc/crontab so they would not run with a broken /etc/crontab).  I don't know if other non-Debian distributions have a cron that behaves differently, however. [[User:N0lqu|-boB]] ([[User talk:N0lqu|talk]]) 15:18, 2 September 2016 (UTC)
 
:Seems like it wouldn't break the existing stuff, they'd still get run and then cron would start parsing the noise and complaining - the "intermediate" situation, though the "export MAILTO" seems wrong. If Cueball did it in his .bashrc, it might get into some of *his* cron jobs but unless it's in /etc/crontab (and there, no "export" is needed/used), it wouldn't matter. His jobs probably wouldn't have rights to write to /etc/crontab either. [[Special:Contributions/173.245.48.73|173.245.48.73]] 17:09, 2 September 2016 (UTC)
 
:Seems like it wouldn't break the existing stuff, they'd still get run and then cron would start parsing the noise and complaining - the "intermediate" situation, though the "export MAILTO" seems wrong. If Cueball did it in his .bashrc, it might get into some of *his* cron jobs but unless it's in /etc/crontab (and there, no "export" is needed/used), it wouldn't matter. His jobs probably wouldn't have rights to write to /etc/crontab either. [[Special:Contributions/173.245.48.73|173.245.48.73]] 17:09, 2 September 2016 (UTC)
::I just checked the source of Paul Vixie's cron-3.0, which is the version that Debian uses. Turns out that the config variables in a crontab file are not actual environment variables when it comes to the cron daemon (which is what matters), so there's no way that putting "export MAILTO=foo" anywhere can change cron's behavior. More importantly, setting the MAILTO variable does not result in /etc/crontab being modified, it merely designates the e-mail address the report is sent to. On most systems, e-mails to "/etc/crontab" will be undelivarable, so Cueball will get bounce messages of the cron mailings instead of the mailings themselves. Interestingly, many mail servers limit the size of the original message contained in the bounce, so depending on the details, the storage used by the e-mails is increased or reduced compared to the previous situation. In any case, Cueball's action displays misconceptions about cron on several levels, which seems to make perfect sense in the context of the strip.  [[User:guest|guest]] ([[User talk:guest|talk]]) 14:24, 5 September 2016 (UTC)
 
:::All this discussion and nobody has tried it in a VM? --[[User:Jlc|Jlc]] ([[User talk:Jlc|talk]]) 22:58, 12 November 2018 (UTC)
 
 
:Unfortunately this huge question is undecidable (by trivial reduction to halting problem) --[[Special:Contributions/172.68.54.126|172.68.54.126]] 08:10, 3 September 2016 (UTC)
 
:Unfortunately this huge question is undecidable (by trivial reduction to halting problem) --[[Special:Contributions/172.68.54.126|172.68.54.126]] 08:10, 3 September 2016 (UTC)
The current explanation misses a part of the joke present in Cueball's last statement: he is considering the cron program to be somehow sentient and able to make a decision between sending the email (is it really important?) and its self-preservation by not trashing its own config file. He is thus daring cron to continue sending emails at the risk of 'self-destruction'. {{unsigned ip|141.101.98.90}}
+
The current explanation misses a part of the joke present in Cueball's last statement: he is considering the cron program to be somehow sentient and able to make a decision between sending the email (is it really important?) and its self-preservation by not trashing its own config file. He is thus daring cron to continue sending emails at the risk of 'self-destruction'.
  
  
- I also feel like the part of the joke is the cron has been sending him useless mail for 15 years. So now, he is sending cron useless mail {{unsigned ip|162.158.69.83}}
+
- I also feel like the part of the joke is the cron has been sending him useless mail for 15 years. So now, he is sending cron useless mail
:: (Also that Cueball is evidently using a 15 year old laptop!  This deepens the question because he's probably never upgraded it and therefore has 15 year old copy of cron) [[User:SteveBaker|SteveBaker]] ([[User talk:SteveBaker|talk]]) 15:20, 4 September 2016 (UTC)
+
 
  
 
This states it can be run as infrequently as once a year, however by using February 29th, you can have it run once every 4 years (exc ever 100 inc every 400). But I think you might be able to get better by also setting it to run on a day of the week. e.g. February 29th, which is a Monday, which would then (after this year) not run for another 28 years, next running on February 29th, 2044.
 
This states it can be run as infrequently as once a year, however by using February 29th, you can have it run once every 4 years (exc ever 100 inc every 400). But I think you might be able to get better by also setting it to run on a day of the week. e.g. February 29th, which is a Monday, which would then (after this year) not run for another 28 years, next running on February 29th, 2044.
Line 23: Line 21:
 
:If you specify a day of week and a day of month it runs on both, so "11 59 29 2 1" would run at 11:59 on every Monday in February, as well as on February 29, not just on any February 29 that happened to be a Monday.--[[Special:Contributions/108.162.219.11|108.162.219.11]] 05:18, 3 September 2016 (UTC)  
 
:If you specify a day of week and a day of month it runs on both, so "11 59 29 2 1" would run at 11:59 on every Monday in February, as well as on February 29, not just on any February 29 that happened to be a Monday.--[[Special:Contributions/108.162.219.11|108.162.219.11]] 05:18, 3 September 2016 (UTC)  
  
I'm hesitant to make substantial edits as a random non-registered IP address, but I do feel like this explanation could be improved if a lot of the technical details were removed. For example, the format of a crontab file and how it is parsed distracts a bit from the joke. For a non-technical audience, it would be much more concise to simply note that the file has a specific format, and piping random emails to it would probably break all of cron. In my opinion, the current explanation loses the forest for the trees. For me, the key part of the joke is Cueball doesn't know cron, Ponytail explains it, Cueball conducts a response which is intuitive in the real world ("okay, cron, if you think it's that important then you deal with it!") which would be horrible in a computer. Ponytail's comment on it being harsh, and that it would accidentally solve the problem is the punchline. I think all the other technical details distracts from that simple explanation. {{unsigned ip|108.162.216.87}}
+
I'm hesitant to make substantial edits as a random non-registered IP address, but I do feel like this explanation could be improved if a lot of the technical details were removed. For example, the format of a crontab file and how it is parsed distracts a bit from the joke. For a non-technical audience, it would be much more concise to simply note that the file has a specific format, and piping random emails to it would probably break all of cron. In my opinion, the current explanation loses the forest for the trees. For me, the key part of the joke is Cueball doesn't know cron, Ponytail explains it, Cueball conducts a response which is intuitive in the real world ("okay, cron, if you think it's that important then you deal with it!") which would be horrible in a computer. Ponytail's comment on it being harsh, and that it would accidentally solve the problem is the punchline. I think all the other technical details distracts from that simple explanation.
 
: I would agree. Understanding how exactly cron works isn't really necessary to understand the comic and its humor. Perhaps linking to some "cron for dummies" tutorial for those interested[[Special:Contributions/141.101.91.223|141.101.91.223]] 04:03, 3 September 2016 (UTC)
 
: I would agree. Understanding how exactly cron works isn't really necessary to understand the comic and its humor. Perhaps linking to some "cron for dummies" tutorial for those interested[[Special:Contributions/141.101.91.223|141.101.91.223]] 04:03, 3 September 2016 (UTC)
  
Line 35: Line 33:
 
A few corrections: (1) Setting MAILTO=/etc/crontab only affect the system-wide crontab. User crontabs will continue to run as normal. Cueball's cronjob runs under his account (we know that because "he has mail") therefore nothing will change as far as he is concerned. (2) MAILTO appends to the named file, therefore the existing lines in /etc/crontab will not be deleted and will continue to run as normal - the worse that can happen is that new, spurious, cronjobs can be introduced (3) in most modern versions of cron, you can run use a /X syntax which will cause X-1 executions to be skipped (for example  20 10 2 1/5 * will run once every 5 years - assuming the system has not been rebooted in the interim) [[User:Sysin|Sysin]] ([[User talk:Sysin|talk]]) 11:28, 3 September 2016 (UTC)
 
A few corrections: (1) Setting MAILTO=/etc/crontab only affect the system-wide crontab. User crontabs will continue to run as normal. Cueball's cronjob runs under his account (we know that because "he has mail") therefore nothing will change as far as he is concerned. (2) MAILTO appends to the named file, therefore the existing lines in /etc/crontab will not be deleted and will continue to run as normal - the worse that can happen is that new, spurious, cronjobs can be introduced (3) in most modern versions of cron, you can run use a /X syntax which will cause X-1 executions to be skipped (for example  20 10 2 1/5 * will run once every 5 years - assuming the system has not been rebooted in the interim) [[User:Sysin|Sysin]] ([[User talk:Sysin|talk]]) 11:28, 3 September 2016 (UTC)
  
I agree that the explanation is overly technical, especially considering this Wiki exists largely as a resource to laypeople. A succinct explanation of the joke (the crux of which being that Cueball is actively trying to threaten a computer program) would be preferential to passing off a man page as an ExplainXKCD article. Although linking to a more detailed breakdown of how Cron functions isn't a bad idea at all. This is a pretty good one http://www.unixgeeks.org/security/newbie/unix/cron-1.html {{unsigned ip|108.162.221.148}}
+
I agree that the explanation is overly technical, especially considering this Wiki exists largely as a resource to laypeople. A succinct explanation of the joke (the crux of which being that Cueball is actively trying to threaten a computer program) would be preferential to passing off a man page as an ExplainXKCD article. Although linking to a more detailed breakdown of how Cron functions isn't a bad idea at all. This is a pretty good one http://www.unixgeeks.org/security/newbie/unix/cron-1.html
  
 
: The joke hinges on a technical matter - and without the technical detail, this would not be an explanation.
 
: The joke hinges on a technical matter - and without the technical detail, this would not be an explanation.
Line 61: Line 59:
 
: One often wonders whether Randall fully understands all of the layers!  I've been using UNIX, then MINIX, now Linux since around 1976 - and predicting the outcome of Cueball's actions is far from obvious without diving into the manuals. (And, if I'm honest...trying it on an old Raspberry Pi that I happen to have lying around! :-)
 
: One often wonders whether Randall fully understands all of the layers!  I've been using UNIX, then MINIX, now Linux since around 1976 - and predicting the outcome of Cueball's actions is far from obvious without diving into the manuals. (And, if I'm honest...trying it on an old Raspberry Pi that I happen to have lying around! :-)
  
: Another problem here is that if Cueball has been getting these messages for 15 years - then he's using a 15 year old laptop that's probably never been upgraded.  Hence all discussion of what "modern" versions of cron might do could be entirely moot.  What did circa 2001 versions of cron do?
 
 
: [[User:SteveBaker|SteveBaker]] ([[User talk:SteveBaker|talk]]) 15:09, 4 September 2016 (UTC)
 
: [[User:SteveBaker|SteveBaker]] ([[User talk:SteveBaker|talk]]) 15:09, 4 September 2016 (UTC)
 
::What makes you think he never upgraded? Lot of distributions allow to be upgraded without losing /var/spool/mail, and if the problem is caused by bad configuration, it can similarly "survive" several upgrades, especially if done by Cueball ("configuration file was changed - update? Nah ...")
 
::Oh, and one think cron is CERTAINLY doing is rotating log files. And because linux computer ALWAYS generates at least some log files, killing cron can still fill the disk. Only way Cueball can win is if the problematic command is in /etc/crontab, the useful commands are in /etc/cron.d/ and adding mail to /etc/crontab will make cron ignore /etc/crontab. -- [[User:Hkmaly|Hkmaly]] ([[User talk:Hkmaly|talk]]) 21:22, 4 September 2016 (UTC)
 
 
::: I think you can explain the purpose of cron quite well without having to explain how every parameter in it works.  The format of the crontab is never addressed in the comic itself, and in fact going that deep into the explanation kinda ruins the humor.  You could just as easily explain the joke like this:
 
 
:::: "In Unix-based systems, the 'cron' utility is used to run system tasks on a schedule.  The '/etc/crontab' file is a configuration file that specifies each scheduled job - specifically at what times the job will run, which user account under which to run the job, and the command-line for the job itself.  Cueball apparently believes that sending the output of the cron program to this file will either break cron or cause it to start spamming itself with exponentially more jobs.  In reality, the former would be true, as the new lines of output would not be in a format that cron understands, resulting in it ignoring the whole file."
 
 
::: People who aren't familiar with cron really only need to know what it does and its default behavior (to send mail to a file) to understand the joke.  I don't think the purpose of this wiki is to reproduce man documents. [[User:KieferSkunk|KieferSkunk]] ([[User talk:KieferSkunk|talk]]) 05:25, 5 September 2016 (UTC)
 
:::: Agree. I - as a specimen of "People who aren't familiar with cron" - think that the syntax of cron files doesen't really matter for understanding the joke. In fact I skipped the box and the paragraph below entirely after realising there's only explanation of how a cron command is set up. And I don't feel like I've missed something. After eventually reading the paragraph I think the only part worth mentioning is the last sentence. So I vote for removing that box/paragraph or at least replacing it with your proposal. [[User:Elektrizikekswerk|Elektrizikekswerk]] ([[User talk:Elektrizikekswerk|talk]]) 07:07, 5 September 2016 (UTC)
 
::::: Done.  I incorporated other parts of the original explanation into what I think is a pretty complete discussion about the essence of the comic, without going too deep into the technical details.  Feel free to fine-tune. :) [[User:KieferSkunk|KieferSkunk]] ([[User talk:KieferSkunk|talk]]) 07:47, 5 September 2016 (UTC)
 
:::::: Much better :) [[User:Elektrizikekswerk|Elektrizikekswerk]] ([[User talk:Elektrizikekswerk|talk]]) 08:30, 5 September 2016 (UTC)
 
 
I like the comics about the tech-inept Cueball and the embarrassed/condescending Ponytail. [[Special:Contributions/108.162.210.196|108.162.210.196]] 04:26, 5 September 2016 (UTC)
 
 
Wait, so that means cron's move is the return to sender. Boom! [[User:Jacky720|Jacky720]] ([[User talk:Jacky720|talk]]) 21:45, 3 October 2016 (UTC)
 

Please note that all contributions to explain xkcd may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see explain xkcd:Copyrights for details). Do not submit copyrighted work without permission!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Cancel | Editing help (opens in new window)

Template used on this page: