LinuxQuestions.org
Latest LQ Deal: Latest LQ Deals
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop
User Name
Password
Linux - Desktop This forum is for the discussion of all Linux Software used in a desktop context.

Notices


Reply
  Search this Thread
Old 11-11-2022, 05:21 AM   #1
Johantonissen
Member
 
Registered: Dec 2019
Posts: 36

Rep: Reputation: Disabled
Question elevated crontab execution of light does not work


Hello dear linux friends,

I have a problem that has bugging me for quite a while.

System information
(hardware info below)
Quote:
Linux fedora 6.0.5-200.fc36.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Oct 26 15:55:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
What I would like to do
I would like to control my laptop's keyboard backlight using crontab using 'light'
Currently I'm able to run these commands that work perfectly:
Quote:
light -Srs "sysfs/leds/chromeos::kbd_backlight" X
Where X is a value from 0 to 100.
I however would like to automate this using a crontab script. Since the procedure is rather complex with regards to if statements I've decided to run a script in crontab rather than setting up different crontab rules.
I've created the following bash script:
Quote:
#!/bin/bash
currenttime=$(date +%H:%M)

if [[ $currenttime > "17:00" ]]; then
if [[ $currenttime < "18:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 25
fi
fi

if [[ $currenttime > "18:00" ]]; then
if [[ $currenttime < "19:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 50
fi
fi

if [[ $currenttime > "19:00" ]]; then
if [[ "$currenttime" < "20:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 75
fi
fi

if [[ $currenttime > "20:00" ]]; then
if [[ $currenttime < "06:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 100
fi
fi

if [[ $currenttime < "07:00" ]]; then
if [[ $currenttime > "06:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 50
fi
fi

if [[ $currenttime > "7:00" ]]; then
if [[ $currenttime < "17:00" ]]; then
light -Srs "sysfs/leds/chromeos::kbd_backlight" 0
fi
fi
sorry for the noob scripting, I wanted to make my script as easy as possible to be sure I was not just making a logic mistake.

I execute this script using the following crontab:
Quote:
crontab -e:

*/5 * * * * /home/USER/scripts/backlight.sh
unfortunately this does not work. I've inserted ECHO statements and forwarded the output of the command to a file and this has shown me that the logic in my bash script should be correct. The output of the ECHO statement was perfectly put in the file while my keyboard light did not change....

What I have tried
(1) I've tried to run the script using crontab without the '-e' flag
(2) I've added the following to visudo:
Quote:
- windhoos ALL=NOPASSWD: /usr/bin/light
- %windhoos ALL=NOPASSWD: /usr/bin/light
- root ALL=(ALL) ALL
- windhoos ALL=(ALL) NOPASSWD:ALL
However nothing helped....

Question

Can anybody please tell me what I'm doing wrong ?
I'm at a loss...

Hardware info

Quote:
sudo lshw
fedora
description: Laptop
product: Dragonair (sku22)
vendor: Google
version: rev4
serial: 5CD104SJRH
width: 64 bits
capabilities: smbios-3.3.0 dmi-3.3.0 smp vsyscall32
configuration: boot=normal chassis=laptop family=Google_Hatch sku=sku22
*-core
description: Motherboard
product: Dragonair
vendor: HP
physical id: 0
version: rev4
serial: PKGEK018JEQ06D
*-firmware
description: BIOS
vendor: coreboot
physical id: 0
version: MrChromebox-4.17.2
date: 07/18/2022
size: 1MiB
capacity: 16MiB
capabilities: pci pcmcia upgrade bootselect acpi
*-cpu
description: CPU
product: Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz
vendor: Intel Corp.
physical id: 4
bus info: cpu@0
version: Intel(R) Core(TM) i5-10210U CPU @ 1.60GHz
slot: CPU0
size: 3399MHz
capacity: 4200MHz
width: 64 bits
clock: 100MHz
capabilities: fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp x86-64 constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single ssbd ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid mpx rdseed adx smap clflushopt intel_pt xsaveopt xsavec xgetbv1 xsaves dtherm ida arat pln pts hwp hwp_notify hwp_act_window hwp_epp md_clear flush_l1d arch_capabilities cpufreq
configuration: cores=4 enabledcores=4 threads=8
*-cache:0
description: L1 cache
physical id: 6
slot: CACHE1
size: 128KiB
capacity: 128KiB
capabilities: internal instruction
configuration: level=1
*-cache:1
description: L2 cache
physical id: 7
slot: CACHE2
size: 1MiB
capacity: 1MiB
capabilities: internal unified
configuration: level=2
*-cache:2
description: L3 cache
physical id: 8
slot: CACHE3
size: 6MiB
capacity: 6MiB
capabilities: internal unified
configuration: level=3
*-cache
description: L1 cache
physical id: 5
slot: CACHE1
size: 128KiB
capacity: 128KiB
capabilities: internal data
configuration: level=1
*-memory
description: System Memory
physical id: 9
slot: System board or motherboard
size: 8GiB
*-bank:0
description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
product: None
vendor: Unknown (0)
physical id: 0
serial: 00000000
slot: Channel-0-DIMM-0
size: 4GiB
width: 64 bits
clock: 2667MHz (0.4ns)
*-bank:1
description: SODIMM DDR4 Synchronous 2667 MHz (0.4 ns)
product: None
vendor: Unknown (0)
physical id: 1
serial: 00000000
slot: Channel-1-DIMM-0
size: 4GiB
width: 64 bits
clock: 2667MHz (0.4ns)
*-pci
description: Host bridge
product: Comet Lake-U v1 4c Host Bridge/DRAM Controller
vendor: Intel Corporation
physical id: 100
bus info: pci@0000:00:00.0
version: 0c
width: 32 bits
clock: 33MHz
configuration: driver=skl_uncore
resources: irq:0
*-display
description: VGA compatible controller
product: CometLake-U GT2 [UHD Graphics]
vendor: Intel Corporation
physical id: 2
bus info: pci@0000:00:02.0
version: 02
width: 64 bits
clock: 33MHz
capabilities: pciexpress msi pm vga_controller bus_master cap_list rom
configuration: driver=i915 latency=0
resources: irq:125 memory:b0000000-b0ffffff memory:a0000000-afffffff ioport:1000(size=64) memory:c0000-dffff
*-generic:0
description: Signal processing controller
product: Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem
vendor: Intel Corporation
physical id: 4
bus info: pci@0000:00:04.0
logical name: /dev/fb0
version: 0c
width: 64 bits
clock: 33MHz
capabilities: msi pm bus_master cap_list fb
configuration: depth=32 driver=proc_thermal latency=0 mode=1920x1080 visual=truecolor xres=1920 yres=1080
resources: iomemory:20-1f irq:21 memory:25e800000-25e807fff
*-generic:1 UNCLAIMED
description: System peripheral
product: Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th/8th Gen Core Processor Gaussian Mixture Model
vendor: Intel Corporation
physical id: 8
bus info: pci@0000:00:08.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: msi pm bus_master cap_list
configuration: latency=0
resources: memory:9f91c000-9f91cfff
*-generic:2
description: Signal processing controller
product: Comet Lake Thermal Subsytem
vendor: Intel Corporation
physical id: 12
bus info: pci@0000:00:12.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=intel_pch_thermal latency=0
resources: irq:16 memory:9f91d000-9f91dfff
*-usb
description: USB controller
product: Comet Lake PCH-LP USB 3.1 xHCI Host Controller
vendor: Intel Corporation
physical id: 14
bus info: pci@0000:00:14.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi xhci bus_master cap_list
configuration: driver=xhci_hcd latency=0
resources: irq:123 memory:9f900000-9f90ffff
*-usbhost:0
product: xHCI Host Controller
vendor: Linux 6.0.5-200.fc36.x86_64 xhci-hcd
physical id: 0
bus info: usb@1
logical name: usb1
version: 6.00
capabilities: usb-2.00
configuration: driver=hub slots=12 speed=480Mbit/s
*-usb:0
description: Video
product: HP Wide Vision HD Camera
vendor: SunplusIT Inc
physical id: 7
bus info: usb@1:7
version: 0.03
serial: SunplusIT Inc
capabilities: usb-2.01
configuration: driver=uvcvideo maxpower=500mA speed=480Mbit/s
*-usb:1
description: Bluetooth wireless interface
product: AX201 Bluetooth
vendor: Intel Corp.
physical id: a
bus info: usb@1:a
version: 0.02
capabilities: bluetooth usb-2.01
configuration: driver=btusb maxpower=100mA speed=12Mbit/s
*-usbhost:1
product: xHCI Host Controller
vendor: Linux 6.0.5-200.fc36.x86_64 xhci-hcd
physical id: 1
bus info: usb@2
logical name: usb2
version: 6.00
capabilities: usb-3.10
configuration: driver=hub slots=6 speed=10000Mbit/s
*-memory UNCLAIMED
description: RAM memory
product: Comet Lake PCH-LP Shared SRAM
vendor: Intel Corporation
physical id: 14.2
bus info: pci@0000:00:14.2
version: 00
width: 64 bits
clock: 33MHz (30.3ns)
capabilities: pm bus_master cap_list
configuration: latency=0
resources: memory:9f918000-9f919fff memory:9f91e000-9f91efff
*-network
description: Wireless interface
product: Comet Lake PCH-LP CNVi WiFi
vendor: Intel Corporation
physical id: 14.3
bus info: pci@0000:00:14.3
logical name: wlp0s20f3
version: 00
serial: d8:f8:83:25:6e:21
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=6.0.5-200.fc36.x86_64 firmware=71.058653f6.0 QuZ-a0-hr-b0-71.u ip=192.168.173.7 latency=0 link=yes multicast=yes wireless=IEEE 802.11
resources: irq:20 memory:9f910000-9f913fff
*-generic:3
description: MMC Host
product: Comet Lake PCH-LP SCS3
vendor: Intel Corporation
physical id: 14.5
bus info: pci@0000:00:14.5
logical name: mmc0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=sdhci-pci latency=0
resources: irq:21 memory:9f91f000-9f91ffff
*-serial:0
description: Serial bus controller
product: Serial IO I2C Host Controller
vendor: Intel Corporation
physical id: 15
bus info: pci@0000:00:15.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=intel-lpss latency=0
resources: irq:26 memory:9f920000-9f920fff
*-serial:1
description: Serial bus controller
product: Comet Lake Serial IO I2C Host Controller
vendor: Intel Corporation
physical id: 15.1
bus info: pci@0000:00:15.1
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=intel-lpss latency=0
resources: irq:27 memory:9f921000-9f921fff
*-sata
description: SATA controller
product: Comet Lake SATA AHCI Controller
vendor: Intel Corporation
physical id: 17
bus info: pci@0000:00:17.0
version: 00
width: 32 bits
clock: 66MHz
capabilities: sata msi pm ahci_1.0 bus_master cap_list
configuration: driver=ahci latency=0
resources: irq:122 memory:9f91a000-9f91bfff memory:9f92a000-9f92a0ff ioport:1060(size=8) ioport:1068(size=4) ioport:1040(size=32) memory:9f929000-9f9297ff
*-serial:2
description: Serial bus controller
product: Comet Lake Serial IO I2C Host Controller
vendor: Intel Corporation
physical id: 19
bus info: pci@0000:00:19.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=intel-lpss latency=0
resources: irq:30 memory:9f923000-9f923fff
*-generic:4
description: MMC Host
product: Intel Corporation
vendor: Intel Corporation
physical id: 1a
bus info: pci@0000:00:1a.0
logical name: mmc1
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=sdhci-pci latency=0
resources: irq:19 memory:9f924000-9f924fff
*-device
description: SD/MMC Device
product: DA4128
vendor: Unknown (69)
physical id: 1
bus info: mmc@1:0001
date: 08/2020
serial: 2339668758
capabilities: mmc
*-interface:0
physical id: 1
logical name: /dev/mmcblk1rpmb
*-interface:1
physical id: 2
logical name: /dev/mmcblk1
size: 125069950976
capabilities: gpt-1.00 partitioned partitioned:gpt
configuration: guid=241c6bab-98f3-40c1-a0ad-530534f19f4a logicalsectorsize=512 sectorsize=512
*-volume:0 UNCLAIMED
description: Windows FAT volume
vendor: mkfs.fat
physical id: 1
version: FAT32
serial: 1491-c756
size: 598MiB
capacity: 599MiB
capabilities: boot fat initialized
configuration: FATs=2 filesystem=fat name=EFI System Partition
*-volume:1
description: EXT4 volume
vendor: Linux
physical id: 2
logical name: /dev/mmcblk1p2
logical name: /boot
version: 1.0
serial: 69a2e581-5142-4828-b0d6-5891e9b953d7
size: 1GiB
capabilities: journaled extended_attributes large_files huge_files dir_nlink recover 64bit extents ext4 ext2 initialized
configuration: created=2022-10-28 00:08:01 filesystem=ext4 lastmountpoint=/boot modified=2022-11-11 11:43:32 mount.fstype=ext4 mount.options=rw,seclabel,relatime mounted=2022-11-11 11:43:32 state=mounted
*-volume:2
description: EFI partition
physical id: 3
logical name: /dev/mmcblk1p3
logical name: /
logical name: /home
serial: b6fb32ee-f3d6-4848-a2c7-1e0ee8e6b8d2
capacity: 114GiB
configuration: mount.fstype=btrfs mount.options=rw,seclabel,relatime,compress=zstd:1,ssd,space_cache=v2,subvolid=256,subvol=/home state=mounted
*-communication
description: Communication controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 1e
bus info: pci@0000:00:1e.0
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=intel-lpss latency=0
resources: irq:33 memory:fe032000-fe032fff memory:9f925000-9f925fff
*-serial:3
description: Serial bus controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 1e.2
bus info: pci@0000:00:1e.2
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=intel-lpss latency=0
resources: irq:35 memory:9f926000-9f926fff
*-serial:4
description: Serial bus controller
product: Intel Corporation
vendor: Intel Corporation
physical id: 1e.3
bus info: pci@0000:00:1e.3
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm bus_master cap_list
configuration: driver=intel-lpss latency=0
resources: irq:36 memory:9f927000-9f927fff
*-isa
description: ISA bridge
product: Comet Lake PCH-LP LPC Premium Controller/eSPI Controller
vendor: Intel Corporation
physical id: 1f
bus info: pci@0000:00:1f.0
version: 00
width: 32 bits
clock: 33MHz
capabilities: isa bus_master
configuration: latency=0
*-multimedia
description: Multimedia audio controller
product: Comet Lake PCH-LP cAVS
vendor: Intel Corporation
physical id: 1f.3
bus info: pci@0000:00:1f.3
version: 00
width: 64 bits
clock: 33MHz
capabilities: pm msi bus_master cap_list
configuration: driver=sof-audio-pci-intel-cnl latency=64
resources: irq:139 memory:9f914000-9f917fff memory:9f800000-9f8fffff
*-serial:5
description: SMBus
product: Comet Lake PCH-LP SMBus Host Controller
vendor: Intel Corporation
physical id: 1f.4
bus info: pci@0000:00:1f.4
version: 00
width: 64 bits
clock: 33MHz
configuration: driver=i801_smbus latency=0
resources: irq:22 memory:9f92b000-9f92b0ff ioport:efa0(size=32)
*-serial:6 UNCLAIMED
description: Serial bus controller
product: Comet Lake SPI (flash) Controller
vendor: Intel Corporation
physical id: 1f.5
bus info: pci@0000:00:1f.5
version: 00
width: 32 bits
clock: 33MHz
capabilities: bus_master
configuration: latency=0
resources: memory:fe010000-fe010fff
*-pnp00:00
product: PnP device PNP0c02
physical id: 1
capabilities: pnp
configuration: driver=system
*-pnp00:01
product: PnP device PNP0103
physical id: 2
capabilities: pnp
configuration: driver=system
*-pnp00:02
product: PnP device PNP0c02
physical id: 3
capabilities: pnp
configuration: driver=system
*-pnp00:03
product: PnP device PNP0b00
physical id: 6
capabilities: pnp
configuration: driver=rtc_cmos
*-pnp00:04
product: PnP device PNP0c02
physical id: 7
capabilities: pnp
configuration: driver=system
*-pnp00:05
product: PnP device PNP0c02
physical id: 8
capabilities: pnp
configuration: driver=system
*-pnp00:06
product: PnP device PNP0303
physical id: a
capabilities: pnp
configuration: driver=i8042 kbd

Last edited by Johantonissen; 11-11-2022 at 05:23 AM.
 
Old 11-11-2022, 08:08 AM   #2
michaelk
Moderator
 
Registered: Aug 2002
Posts: 25,700

Rep: Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895
According to the arch man page light is independent of x windows so theoretically it should work via cron.

I do not know if you understand that your if statements are string comparisons which uses alphanumeric sorting to determine if currenttime is < or > then the desired time.

Code:
if [[ $currenttime > "7:00" ]]; then
Should be
Code:
if [[ $currenttime > "07:00" ]]; then
In alphanumeric sorting any hour greater then 9 is < 7:00 which is why your if statement does not work as expected unless that was a typo.

Code:
if [[ $currenttime > "20:00" ]]; then
if [[ $currenttime < "06:00" ]]; then
The logic here does not work because it should be an or not an and i.e.
Code:
if [[ $currenttime > "20:00" ]] || [[ $currenttime < "06:00" ]]
 
2 members found this post helpful.
Old 11-12-2022, 02:00 AM   #3
Johantonissen
Member
 
Registered: Dec 2019
Posts: 36

Original Poster
Rep: Reputation: Disabled
Thumbs up

Dear michaelk,

Thank you for the reply!

I understand your second point! that was a bug indeed!

However for your first point, I've read it five times but did not see the difference. Then I noticed that the second row is longer. Then it took me a really good look again and i found the missing 0.

Damn having dyslexia is annoying....

It now works!

Thank you!!!
 
Old 11-12-2022, 09:10 AM   #4
michaelk
Moderator
 
Registered: Aug 2002
Posts: 25,700

Rep: Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895Reputation: 5895
Code:
#!/bin/bash
currenttime=$(date +%H)
if [ "$currenttime" -eq 17 ]; then
  light -Srs "sysfs/leds/chromeos::kbd_backlight" 25
fi

if [ "$currenttime" -eq 18 ]; then
  light -Srs "sysfs/leds/chromeos::kbd_backlight" 50
fi

if [ "$currenttime" -eq 19 ]; then
  light -Srs "sysfs/leds/chromeos::kbd_backlight" 75
fi

if [ "$currenttime" -ge 20 ] || [ "$currenttime" -lt 6 ]; then
  light -Srs "sysfs/leds/chromeos::kbd_backlight" 100
fi

if [ "$currenttime" -eq 6 ] ; then
  light -Srs "sysfs/leds/chromeos::kbd_backlight" 50 
fi

if [ "$currenttime" -ge 7 ] && [ "$currenttime" -lt 17 ]; then
   light -Srs "sysfs/leds/chromeos::kbd_backlight" 0
fi
I've sort of simplified your script by just using hours and switched the ifs to using numbers instead of strings (even though $currenttime is quoted) just so you can see.

Last edited by michaelk; 11-12-2022 at 09:12 AM.
 
Old 11-12-2022, 09:57 AM   #5
boughtonp
Senior Member
 
Registered: Feb 2007
Location: UK
Distribution: Debian
Posts: 3,599

Rep: Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546Reputation: 2546

For tasks like this, it can help to separate the logic for setting level and determining what it should be, e.g:

Code:
#!/bin/bash

currenthour=$(date +%H)
backlight=0

if [ "$currenthour" -le 6 ] || [ "$currenthour" -ge 17 ]
then
   case "$currenthour" in
      6 ) backlight=50 ;;
      17 ) backlight=25 ;;
      18 ) backlight=50 ;;
      19 ) backlight=75 ;;
      * ) backlight=100 ;;
   esac
fi

light -Srs "sysfs/leds/chromeos::kbd_backlight" "$backlight"
That's more readable and maintainable.


Also, please make sure you use "[code]..[/code]" in future, not "[quote]..[/quote]"

 
  


Reply

Tags
crontab, fedora, light



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
snap-confine has elevated permissions and is not confined but should be. PsychoHermit Ubuntu 4 05-05-2022 10:39 PM
On RHEL7 steps to restrict direct login to postgres but get elevated access to it with my account. srao01 Linux - Security 1 01-12-2018 01:14 PM
[SOLVED] CGI scripts that require elevated privilege RicCrouch Linux - Software 8 03-06-2016 08:43 PM
Using elevated privileges during installation galfly Linux - Software 1 03-13-2013 12:49 PM
Java / applying elevated permissions when running a particular .jar file fifthfiend Linux - Newbie 1 04-12-2011 01:12 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Desktop

All times are GMT -5. The time now is 06:56 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration