The first thing you need to do is to install some sort of MTA (mail transport agent) so you can get the output of your cron command emailed to you. As things currently stand, the key diagnostic information is being discarded so you're going to struggle to fix things. I'd recommend mssmtp as a simple starting point.
Instructions for setting up mssmtp copied from here to prevent link rot:
To begin, we need to install 3 packages:
sudo apt-get install msmtp msmtp-mta ca-certificates
Once these are installed, a default config is required. By default msmtp will look at /etc/msmtprc, so I created that using vim, though any text editor will do the trick. This file looked something like this:
# Set defaults.
defaults
# Enable or disable TLS/SSL encryption.
tls on
tls_starttls on
tls_trust_file /etc/ssl/certs/ca-certificates.crt
# Setup WP account's settings.
account <MSMTP_ACCOUNT_NAME>
host smtp.gmail.com
port 587
auth login
user <EMAIL_USERNAME>
password <PASSWORD>
from <FROM_ADDRESS>
logfile /var/log/msmtp/msmtp.log
account default : <MSMTP_ACCOUNT_NAME>
Any of the uppercase items (i.e. <PASSWORD>
) are things that need replacing specific to your configuration. The exception to that is the log file, which can of course be placed wherever you wish to log any msmtp activity/warnings/errors to.
Once that file is saved, we’ll update the permissions on the above configuration file — msmtp won’t run if the permissions on that file are too open — and create the directory for the log file.
sudo mkdir /var/log/msmtp
sudo chown -R www-data:adm /var/log/msmtp
sudo chmod 0600 /etc/msmtprc
Next I chose to configure logrotate for the msmtp logs, to make sure that the log files don’t get too large as well as keeping the log directory a little tidier. To do this, we create /etc/logrotate.d/msmtp and configure it with the following file. Note that this is optional, you may choose to not do this, or you may choose to configure the logs differently.
/var/log/msmtp/*.log {
rotate 12
monthly
compress
missingok
notifempty
}
Now that the logging is configured, we need to tell PHP to use msmtp by editing /etc/php/7.0/apache2/php.ini and updating the sendmail path from
sendmail_path =
to
sendmail_path = "/usr/bin/msmtp -C /etc/msmtprc -a <MSMTP_ACCOUNT_NAME> -t"
Here I did run into an issue where even though I specified the account name it wasn’t sending emails correctly when I tested it. This is why the line account default : was placed at the end of the msmtp configuration file. To test the configuration, ensure that the PHP file has been saved and run sudo service apache2 restart, then run php -a and execute the following
mail ('[email protected]', 'Test Subject', 'Test body text');
exit();
Any errors that occur at this point will be displayed in the output so should make diagnosing any errors after the test relatively easy.
date >> /tmp/lockscreen.log
in it. (2) Better yet, capture the stdout, stderr, and exit status ($?
), and log them. (3) Something else to try: make a copy or your script (e.g., call itlockscreen0
) and put theexport DISPLAY=:0
command into that script./home/arctic_hen7/bin/lockscreen
file?gnome-screensaver-command
is probably not in thecron
PATHxrandr
and cron job (on Ask Ubuntu).